[英]Select distinct column and get count of another column
我有以下sqlfiddle :
CREATE TABLE tester(
name TEXT,
address TEXT
)
表格中的每個人都可以有多個地址。 我想選擇所有名稱以及具有> 1個地址的地址數。 我努力了:
SELECT d.name, count(address) c FROM (SELECT DISTINCT ON(name) FROM tester) d
LEFT JOIN tester ON d.name = links.name
WHERE count(address) > 1
我得到:
ERROR: syntax error at or near "FROM" Position: 64
我也嘗試過DISTINCT ON查詢:
SELECT DISTINCT ON(name) name, count(address) FROM tester HAVING count(address) > 1
我得到:
ERROR: column "tester.name" must appear in the GROUP BY clause or be used in an aggregate function Position: 26
我覺得我很難過。
只需使用GROUP BY
:
SELECT name, count(address)
FROM tester
GROUP BY name
HAVING count(address) > 1
SQL(以及其他語言)中的GROUP BY
將始終產生不同的組,因此在這種情況下無需DISTINCT
。
您只需要正確使用group by。 像這樣:
SELECT name, count(*)
FROM tester
group by name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.