SQL 使用 group_concat 与每个连接项目的计数,而不是在一行中的总计数
Posted
技术标签:
【中文标题】SQL 使用 group_concat 与每个连接项目的计数,而不是在一行中的总计数【英文标题】:SQL using group_concat with count of each concatenated item rather total count in a row 【发布时间】:2019-08-09 00:21:42 【问题描述】:mysql - Count of elements inside Group_Concat
我改写为this fiddle,但是给出的错误。
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:就问题而言,要解决错误并获得正确的结果,您只需从聚合子查询中返回CUSTOMERID
(该列已经是GROUP BY
子句的一部分)。
更新查询:
SELECT SELLER,
COUNT(*) as COUNT_OF_CUSTIDS,
GROUP_CONCAT(CUSTOMERID, ' (', cnt, ')' SEPARATOR '|') AS CUSTIDS
FROM (
SELECT SELLER, CUSTOMERID, COUNT(*) as cnt
FROM docs
GROUP BY SELLER, CUSTOMERID
) t
GROUP BY SELLER
HAVING COUNT(*) > 1
返回:
| SELLER | COUNT_OF_CUSTIDS | CUSTIDS |
| ------ | ---------------- | -------------------- |
| S1 | 3 | C2 (2)|C1 (2)|C3 (3) |
| S2 | 3 | C3 (1)|C2 (1)|C1 (2) |
Demo on DB Fiddle
【讨论】:
你能进一步了解一下吗 @programmergeeky:这与我最初回答的问题不同(例如,现在您涉及两个表,而原始问题中只有一个)。你需要问一个新问题,这就是它在 *** 上的工作方式。另外,我不明白您为什么不接受我的回答,因为我认为我正确回答了您原始问题... 是的,我是新来的,所以很难重新发布一个新的 qs,但我只是这样做了以上是关于SQL 使用 group_concat 与每个连接项目的计数,而不是在一行中的总计数的主要内容,如果未能解决你的问题,请参考以下文章
Spark SQL 替换 MySQL 的 GROUP_CONCAT 聚合函数
mysql中的group_concat与“case when”条件