如何计算表格中分组值的情况?

时间:2018-10-25 14:22:26

标签: sql postgresql

我在下面的postgres数据库中有该表。我想知道在test为1的表中,值(name1,name2,name3)出现了多少次。 在低于预期输出的情况下:

name1, 4
name2, 3
name3, 2

+--------------+
| id|name|trial|
+--------------+
|1  |name1|1   |
|2  |name1|1   |
|3  |name1|1   |
|4  |name1|1   |
|5  |name2|1   |
|6  |name2|1   |
|7  |name2|1   |
|8  |name3|1   |
|9  |name3|1   |

到目前为止我尝试过的事情:

SELECT count(C.NAME)
FROM FIRST AS C
WHERE NAME = (
              SELECT CS.NAME
              FROM FIRST AS CS
              WHERE TRIAL = 1
              GROUP BY CS.NAME
              )

此查询返回的行数为9。

1 个答案:

答案 0 :(得分:2)

您缺少group by子句。另外,可以简化查询,请尝试以下操作:

SELECT count(1), Name
FROM FIRST
WHERE TRIAL = 1
GROUP BY Name