我在下面的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。
答案 0 :(得分:2)
您缺少group by子句。另外,可以简化查询,请尝试以下操作:
SELECT count(1), Name
FROM FIRST
WHERE TRIAL = 1
GROUP BY Name