[英]select distinct on one column and return its row
这个问题最有可能被问到,但是我在寻找它时遇到了麻烦。
我希望返回来自唯一列的结果集。 该结果集将包括唯一列和另一个字段。 我遇到的问题是,如果我在唯一列及其其他字段上都使用了distinct,我将收到唯一列的重复内容,因为第二个字段具有两个唯一元素。
我将尝试更好地演示我要做什么。
工作单表:
JPNUM DESCRIPTION
===== ===========
FE-JPINSP BLAH BLAH
FE-JPINSP BLAH BLAH BLAH
FE-JPINSP BLAH BLAH
LAB-JPINSP LAB INSP BLAH
SQL:
SELECT DISTINCT JPNUM FROM WORKORDER WHERE WORKTYPE = 'INSP' AND PARENT = ''
该查询将只返回唯一的JPNUM。 但我也想包括与该JPNUM相关的描述。 如果我同时选择JPNUM和DESCRIPTION。 我将收到重复的JPNUM的Specific FE-JPINSP。
我从表中省略了几列。 但是你应该有个主意。
您的问题并没有说明如何应对数据中的歧义。 实际上, DESCRIPTION
列中有两个值与F-JPINSP
列中的值F-JPINSP
JPNUM
。
我会猜测,您想要词法上的最后一个值(在这种情况下更长)。
试试这个查询。
SELECT JPNUM,
MAX(DESCRIPTION) AS DESCRIPTION
FROM WORKORDER
WHERE WORKTYPE = 'INSP'
AND PARENT = ''
GROUP BY JPNUM
ORDER BY JPNUM
只需按JPNUM分组,然后使用MIN,MAX或GROUP_CONCAT选择您最喜欢的描述:
SELECT JPNUM, MIN(DESCRIPTION)
FROM WORKORDER
WHERE WORKTYPE = 'INSP' AND PARENT = ''
GROUP BY JPNUM;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.