gpt4 book ai didi

Mysql查询 explode 并计数

转载 作者:可可西里 更新时间:2023-11-01 07:22:09 25 4
gpt4 key购买 nike

我有这样的表:

product_id       model        date                  computers
----------------------------------------------------------------
12204 Asus 'random_date' :::aass:::ddff:::ddfd:::dfwr:::
12205 Acer 'random_date' :::ersz:::dfwqq:::bbs:::
12205 Acer 'random_date' :::ettww:::iwoeur:::iwerq:::

如您所见,product_id、model 可以重复。 Computers 字段包含当前行中有多少台计算机。分隔符是:::。在我对它们进行分组(GROUP BY product_id)后,第一个产品(12204)中有 3 台计算机,其他产品(12205)中有 6 台计算机。所以查询结果一定是这样的:

GROUP(product_id)      model       count
-----------------------------------------
12204 Asus 4
12205 Acer 6

是否可以通过单个查询来完成?或者我必须在后端代码(在我的例子中是 python)做?

(我不能修改表,我正在处理别人的预先存在的表)

编辑:更新样本数据格式

最佳答案

使用 SUMROUNDLENGTHREPLACECOUNT 的组合> 对于 count 字段,然后按 product_id 和型号分组。

SELECT product_id, model, 
SUM(ROUND ((LENGTH(computers) - LENGTH(REPLACE(computers, ":::", ""))) / LENGTH(":::"))) - count(product_id) AS count
FROM yourtable
GROUP BY product_id, model

输出

product_id  model   count
12204 Asus 4
12205 Acer 6

SQL fiddle :http://sqlfiddle.com/#!9/ad183/2/0

关于Mysql查询 explode 并计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34016115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com