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
答案 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