如何计算列值的出现次数但没有GROUP BY(不是不同的值)mysql

时间:2013-01-16 11:45:58

标签: mysql sql count

id      title           numbers
1       chicken         1
2       meat            1
3       fish            1
4       fish            2
5       meat            2
6       fish            3
7       chicken         2
8       chicken         3

我想如上构造以下输出。任何人都可以帮我计算列值的出现次数但没有 GROUP BY (不删除相同的值),让我们创建“数字”字段,如上所述,谢谢

正常,如果使用COUNT(*)

SELECT COUNT(*) FROM table GROUP BY title

但它删除了相同的值:

id      title           numbers
1       chicken         3
2       meat            2
3       fish            3

我希望保持相同的值,并输出如下:

id      title           numbers
1       chicken         1    
2       meat            1
3       fish            1
4       fish            2
5       meat            2
6       fish            3    
7       chicken         2     
8       chicken         3     

1 个答案:

答案 0 :(得分:4)

我假设您的问题是如何在示例输出中生成numbers列。如果这不正确,请澄清问题。

select  id
,       title
,       (
        select  count(*)
        from    Table1 t2
        where   t1.title = t2.title
                and t2.id <= t1.id
        ) as numbers
from    Table1 t1

Live example at SQL Fiddle.