1

我怎样才能对 concat 进行分组?这是我的查询

select t.date, group_concat(count(*)) from table1 t
group by t.date

但它返回错误“无效使用组功能”

如果我使用这样的查询

select t.date, count(*) from table1 t
group by t.date

然后它返回以下输出,但我想 group_concat 这个输出

2011-01-01  100
2011-01-02  97
2011-01-03  105
4

3 回答 3

1
SELECT GROUP_CONCAT(`cnt` ORDER BY `date`) 
FROM (
    SELECT t.`date`, COUNT(*) AS `cnt`
    FROM `table1` t
    GROUP BY t.`date`
) d
于 2011-04-03T16:33:12.277 回答
0

你想要这样的东西:

SELECT GROUP_CONCAT(n) groupN
FROM (SELECT COUNT(*) n
      FROM table1
      GROUP BY date) tmp

但这不是 RDBMS 的作用!Cosmetic 是您的应用程序语言(PHP、Python、Ruby 等)的角色,您的查询应该只选择您的数据、句号。因此,GROUP_CONCAT 不是这种情况下的解决方案。

于 2011-04-03T16:34:42.590 回答
0

您想按日期计算日期行数吗?

我使用此语句来计算特定月份中每个日期的发票项目数。

SELECT date(i.Date), count(*) cnt
FROM invoice i
WHERE MONTH(i.Date) = 3
GROUP BY date(i.Date)

这会将所有相同的日期分组。这是你的意思吗?

我将 GROUP_CONCAT 用于返回多行的子查询。

* 编辑 * OUPS,看到我的建议与您已经尝试过的相同。那我不明白你在找什么。你能举一个期望结果的例子吗?

于 2011-04-03T16:19:37.430 回答