繁体   English   中英

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

[英]How to count the number of occurrence of column values but without GROUP BY (not distinct values) mysql

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

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

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

SQL Fiddle的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM