sql - 按 SQL 进行分组并计数

标签 sql

假设我们有这样的行:

我的表

ID Name  Product
------------------
1  Adam  x
2  Adam  y
3  Adam  z
4  Peter a
5  Peter b

使用如下查询:

Select Name, Count(Product) from MyTable
group by Name

结果将是:

Adam 3
Peter 2

但我想要这样的结果:

1 Adam x 3
2 Adam y 3
3 Adam z 3
4 Peter a 2
5 Peter b 2

我希望Ypu明白我的意思 你能帮我解决这个问题吗? 感谢帮助, 再见

最佳答案

您可以通过在表上运行的子查询来连接表以选择计数:

SELECT a.ID as ID, a.Name as Name, a.Product as Product, ISNULL(b.cnt,0) as Cnt
FROM MyTable a
LEFT JOIN (SELECT Name, COUNT(*) as Cnt FROM MyTable GROUP BY Name) b
ON a.Name = b.Name

关于sql - 按 SQL 进行分组并计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035906/

相关文章:

mysql - 多次左连接同一个表

sql - 许多相交的 ST_ExteriorRing(圆)上的 ST_Union()与 ST_Node(ST_Collect())

sql - Snowflake 使用流来跟踪表的更新/删除

sql - 多个但互斥的外键 - 这是要走的路吗?

mysql - 根据条件连接两个表以及第二个表中的记录计数

c# - 如何在不向服务器提交 SQL 语句的情况下获取 SqlParameter 的字符串表示形式?

sql - if/else column value choose select table, 排除json中的null

sql - 使用 Oracle 和 PL/SQL 插入或更新

sql - 在 Sphinx SQL 中设置列​​的权重

sql - 选择 A 列字符串中的任何单词与 B 列字符串中的任何单词匹配的位置