我意识到我的头衔可能并不能很好地解释我的情况,但老实说我真的不知道怎么说这个。
我正在使用SQL来访问DB2数据库。
使用我的屏幕截图图片1 作为参考:
第1列有三个“U11124”实例,有三个不同的描述(第2列)
我希望这个查询返回“U11124”的第一个实例及其描述,但是还要返回其他行的唯一记录。 图片 2显示了我想要的结果。
图片1
图片2
-----编辑----
回答一些问题/帖子: 从技术上讲,它不需要是第一个,只需要那些记录中的任何一个。问题是我们有三个描述,只需要显示一个,我现在被告知哪一个并不重要。
答案 0 :(得分:5)
SELECT STVNST, MAX(STDESC) FROM MY_TABLE GROUP BY STVNST;
答案 1 :(得分:3)
在SQL Server中:
select stvnst, stdesc
from (
select
stvnst, stdesc
row_number() over (order by stdesc partition by stvnst) row
from table
) a
where row = 1
此方法优于简单组,因为当表中有两列以上时,它也可以工作。
答案 2 :(得分:2)
SELECT STVNST,FIRST(STDESC) from table group by STVNST
ORDER BY what_you_want_first
答案 3 :(得分:1)
您需要做的就是使用GROUP BY。
你说你想要STDESC列的第一个实例吗?那么你不能保证没有其他列的行的顺序,但是如果你想按最高有序值排序,下面就足够了:
SELECT STVNST, MAX(STDESC) FROM MY_TABLE GROUP BY STVNST;