我想显示SQL数据库中表中列中的每个不同元素出现的次数,以及新输出表中特定的不同元素出现的次数。是否可能在一次单独的声明中用手将我的头撞向它?
发布于 2014-04-03 12:23:45
在没有实际尝试的情况下,这样如何:
SELECT tmp.Field, (SELECT COUNT(*) FROM [Table] t WHERE t.DesiredField = tmp.Field) AS Count
FROM
(
SELECT DISTINCT DesiredField FROM [Table]
) tmp这将首先从Table中选择所有不同的值,在外部选择中,取值和它们在列中出现的次数。
你也可以试试
SELECT Field, SUM(1) AS Count FROM Table
GROUP BY Field这应该使表“变平”,以便它只包含Field中的不同值和Field具有相同值的行数。
我刚试了第二种--它看起来很好用。
原来我一直都是错的。第二个示例和下面的示例实际上返回相同的结果:
SELECT Field, COUNT(*) AS Count FROM Table
GROUP BY Field发布于 2014-04-03 13:14:13
使用COUNT()最简单。您将看到计数参数的变化,下面是选项。
DECLARE @tbl TABLE(id INT, data INT)
INSERT INTO @tbl VALUES (1,1),(2,1),(3,2),(4,NULL)
SELECT data
,COUNT(*) Count_star
,COUNT(id) Count_id
,COUNT(data) Count_data
,COUNT(1) Count_literal
FROM @tbl
GROUP BY data
data Count_star Count_id Count_data Count_literal
----------- ----------- ----------- ----------- -------------
NULL 1 1 0 1
1 2 2 2 2
2 1 1 1 1
Warning: Null value is eliminated by an aggregate or other SET operation.如果计算包含NULL的字段,您将看到与NULL处理方式的不同。
https://stackoverflow.com/questions/22837546
复制相似问题