假设架构是这样的:
First Name | Last Name | Age | ID ==================================== John Smith 18 123 John Smith 21 234 John Smith 19 123 Cathy Zhang 20 144 Cathy Zhang 20 144 Jackie Chan 35 456
假设我想计算每个(名字,姓氏)之后的不同对的数量.所以输出应该是:
John Smith 3 Cathy Zhang 1 Jackie Chan 1
我想我可以先做:
SELECT FirstName,LastName,Age,ID,COUNT(*);
然后
SELECT FirstName,COUNT(*)
有更好的方法吗?
解决方法
要返回每个不同的firstname lastname的计数,您将使用COUNT和GROUP BY:
SELECT FirstName,COUNT(*) FROM TableName GROUP BY FirstName,LastName
在上面的例子中,我认为你的意思是张的计数为2.
– 编辑
如果我正确理解您的最新评论,您还想使用DISTINCT:
SELECT FirstName,Id,COUNT(*) FROM (SELECT DISTINCT FirstName,Id FROM TableName) T GROUP BY FirstName,Id
祝好运.