繁体   English   中英

在某一列上选择不重复并返回其行

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM