[英]SQL MS-Access Select Distinct for multiple columns
很抱歉再次提出這個問題,但我無法從現有答案中得出解決問題的方法。
我有一個表(“ Data
”),我需要從中拉出三列(“ PID
”,“ Manager
”,“ Customer
”),只有“ PID
”必須是不同的。 我不在乎為其他列(“ Manger
” /“ Customer
”)提取了哪些記錄,它可能是第一個條目或其他內容。
SELECT Distinct PID, Manager, Customer
FROM Data;
將為我提供PID,Manager和Customer不同的所有行,因此,如果有兩個具有相同PID但具有不同Manager的條目,我將得到兩個記錄而不是一個。
非常感謝你。
您可以做到這一點,希望對您有所幫助
SELECT PID, max(Manager), max(Customer)
FROM Data
group by PID
要么
SELECT PID, min(Manager), min(Customer)
FROM Data
group by PID
編輯
我會舉一個例子,向您解釋Max & Min Func
這是樣品表
CREATE TABLE data(
PID int ,
Manager varchar(20) ,
Customer varchar(20)
) ;
insert into data
values
(1,'a','b'),
(1,'c','d'),
(3,'1','e'),
(3,'5','e'),
(3,'3','e')
現在,
這是三個查詢,將返回各自的輸出,
select * from data;
SELECT PID, max(Manager), max(Customer)
FROM Data
group by PID;
SELECT PID, min(Manager), min(Customer)
FROM Data
group by PID
以上查詢的輸出是
說明: MAX :
MAX
為經理Coz返回C & 5
, C
大於A
,同樣5
大於1 & 3
最小功能與MAX功能完全相反且具有自我說明性。
我也在演示中創建了請單擊以查看Fiddle上的演示
SELECT "PID", max("Manager"), max("Customer")
FROM "Data"
GROUP BY "PID";
該查詢返回唯一的“ PID”以及每個“ PID”的最大值“ Manager”和“ Customer”。
DISTINCT適用於選擇列表中的所有列。 因此,您需要使用GROUP BY +聚合函數(為多個行返回一個值)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.