簡體   English   中英

選擇不同的列並獲取另一列的計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM