嗨我有一个表,我试图获取同一行字段上不同行的计数,例如我有这个行
Function field1 field2 field3
'dog' 1 1 5
'dog' 1 1 5
'cat' 1 1 5
'dog' 1 2 6
此表的输出应为:
Function count
'dog' 2
'cat' 1
因为'狗'有两个不同的行。 (某些字段不同)和“cat'
的一行非常感谢你
答案 0 :(得分:3)
假设您要根据给定的字段子集计算相同的行,则为:
SELECT func, COUNT(*) FROM (
SELECT DISTINCT func, field1, field2 FROM yourtable
) AS tmp GROUP BY func;
这首先区分所有行,所以你得到了
'dog' 1 1 5
'cat' 1 1 5
'dog' 1 2 6
然后计算第一个字段,从而得到2和1。
您甚至可以执行类似
的操作 SELECT func, COUNT(*) AS different, SUM(total) AS total FROM (
SELECT func, field1, field2, field3, COUNT(*) AS total
FROM yourtable
GROUP BY func, field1, field2, field3
) AS tmp GROUP BY func;
将给出:
func different total
dog 2 3
cat 1 1
答案 1 :(得分:3)
这应该可以为您提供所需的结果:
Select Function, Count(*) As Count
From
(
Select Distinct
Function,
Field1,
Field2,
Field3
From YourTable
) As A
Group By Function