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