簡體   English   中英

SQL MS-Access為多個列選擇不同

[英]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 & 5C大於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.

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