我有數據,看起來像這樣如何在Access SQL中只符合每個符合條件的行?
CUSTID POLICY TYPE RANDOMTHING ETC
而且有時會出現每CUSTID乘行,與否則其餘字段不同的值。我只想每個CUSTID返回一行,只取第一行的值(忽略其餘行)。
我試過先申請CUSTID,但它似乎沒有工作。
我有數據,看起來像這樣如何在Access SQL中只符合每個符合條件的行?
CUSTID POLICY TYPE RANDOMTHING ETC
而且有時會出現每CUSTID乘行,與否則其餘字段不同的值。我只想每個CUSTID返回一行,只取第一行的值(忽略其餘行)。
我試過先申請CUSTID,但它似乎沒有工作。
我相信你想要的東西,像
SELECT t1.*
FROM yourTable t1 INNER JOIN
(
SELECT CUSTID, MIN(POLICY) AS MinOfPOLICY
FROM yourTable
GROUP BY CUSTID
) t2 ON t1.CUSTID = t2.CUSTID AND t1.POLICY = t2.MinOfPOLICY
ORDER BY 1
在這個例子中,t1
和t2
是表別名。在大多數情況下,當構建一個不止一次引用同一個表的查詢時,需要使用表別名來消除列引用的歧義。例如,您不能只說0123',因爲您不清楚yourTable
的第一個實例是CUSTID
,還是來自第二個實例。
SQL語言允許通過將別名直接放在表名後面給別名表,所以yourTable t1
表示「yourTable
,使用別名t1
」。另一個別名t2
是GROUP BY
子查詢(括號內的那個)的別名。
看起來像一個很好的猜測給我。 :-)如果這不是他所追求的,他應該向我們展示樣本數據和他希望從樣本中得到的輸出。 – HansUp
@HansUp [TYPE]是隱式排序的唯一可能的候選人。排序RANDOMTHING看起來不會是最好的選擇.... :) –
我不明白這裏的t1和t2是什麼?或者如何解析「yourTable t1」。假設我的查詢名稱是MyQuery –
您是否嘗試過使用「TOP 1」謂詞作爲查詢的一部分? (我假設你正在編寫一個SQL語句)。 –
我該如何做一個「TOP 1」?是的,我可以編輯SQL語句 –
谷歌搜索它,我不認爲這是我所需要的。它只返回我的數據集的最上面一行。我需要每個CUSTID的「頂級」行(實際上,我的CUSTID就像第二個域) –