一列不同的選擇記錄,我得到了以下的記錄,其中不同的人有同一個名字:在PostgreSQL數據庫
id name category_id birthdate family_id
1 joe 2 2014-05-01 1
2 jack 3 2013-04-01 2
3 joe 2 1964-05-01 1
4 jack 5 1982-05-01 2
5 emma 1 2014-05-01 1
6 joe 3 2003-07-06 3
現在我需要查詢其結果如下。每個family_id我只想要每個名字一次。我需要包含id後的每條記錄的所有值。如果桌子在路上走得更遠,我也需要它們。所以結果應該包括所有的值。
id name category_id birthdate family_id
1 joe 2 2014-05-01 1
2 jack 3 2013-04-01 2
5 emma 1 2014-05-01 1
6 joe 3 2003-07-06 3
我用幾種方法(GROUP BY
,DISTINCT
,DISTINCT ON
等),但沒有被工作了,我試了一下。
當我使用GROUP BY子句(GROUP BY name
)時,我得到一個ERROR: column "deals.id" must appear in the GROUP BY clause or be used in an aggregate function
。但是當我把id
放在條款裏面時,我把所有的記錄都拿回來了。
與不同。在那裏,我必須選擇結果集應該不同的所有字段。但我需要記錄的所有值。並且由於主要每個記錄都是不同的,當我包含id。
我試着用一個已經過濾了所有不同名字的子語句。我在where子句中使用它們。但是我得到了所有的價值,包括(當然)不明確的名稱/ family_id記錄。
有沒有人幫助我?
「*沒有爲我工作*」不是一個可接受的問題描述。告訴我們你已經嘗試了什麼以及你得到的錯誤。 –
您需要描述如何爲每個family_id選擇一次該名稱。 – jarlh
@a_horse_with_no_name你能告訴我如何把一個表放入堆棧溢出?我用markdown試了一下,用html表和一個簡單的文本表(http://www.sensefulsolutions.com/2010/10/format-text-as-table.html)。沒有工作。所以我認爲這比沒有好。 – coderuby