mysql group_concat

时间:2011-04-03 16:10:28

标签: mysql mysql-error-1111

我该如何分组?这是我的查询

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

3 个答案:

答案 0 :(得分:0)

您是否要按日期计算日期行数?

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

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

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

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

*编辑* OUPS,看到我的建议和你已经尝试过的一样。然后我不明白你在找什么。能否请您展示一个期望结果的例子?

答案 1 :(得分:0)

SELECT GROUP_CONCAT(`cnt` ORDER BY `date`) 
FROM (
    SELECT t.`date`, COUNT(*) AS `cnt`
    FROM `table1` t
    GROUP BY t.`date`
) d

答案 2 :(得分:0)

你想要这样的东西:

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

但这不是RDBMS的作用!化妆品是您的应用程序语言(PHP,Python,Ruby等)的作用,您的查询应该只选择您的数据,期间。因此,在这种情况下,GROUP_CONCAT不是解决方案。