如何使用选择查询为每个唯一的第二个值获取一个值中的最小值?

Posted

技术标签:

【中文标题】如何使用选择查询为每个唯一的第二个值获取一个值中的最小值?【英文标题】:How do I use a select query to get the least of one value for each unique second value? 【发布时间】:2010-12-17 00:09:13 【问题描述】:

有这样的群;

USER_ID SEQ_ID NAME
1       2      Armut
1       3      Elma
1       4      Kiraz
2       1      Nar
2       2      Uzum
4       3      Sheftali
4       4      Karpuz
4       5      Kavun

选择查询后我只想查看;

USER_ID SEQ_ID NAME
1       2      Armut
2       1      Nar
4       3      Karpuz

也就是说,我想要每个 USER_ID 的 SEQ_ID 最少的行。什么 SQL 查询会给我这个结果?

最好的问候

【问题讨论】:

请多描述一下。这里的模式是什么。这是用户一和二的拳头,但用户四的第二个。 啊,我明白了。每个USER_ID 的最小SEQ_ID Stephan:不,这不适用于 USER_ID 为 4 的组。最小的 SEQ_ID 应该是 3。 @Johannes: 很好 :) 如果在所需的输出中有5 3 Helva,我会说这是因为首字母拼写“ANKH”,但没有。 【参考方案1】:
SELECT USER_ID, SEQ_ID, NAME 
  FROM table
  WHERE NAME IN ('Armut', 'Nar', 'Karpuz')
  ORDER BY USER_ID

如果您有其他想法,请澄清您的问题。

【讨论】:

除非我一开始是错的。忘记了ORDER BY 子句。【参考方案2】:

在我看来应该是这样的:

SELECT USER_ID, MIN(SEQ_ID) AS SEQ_ID, NAME
FROM table
GROUP BY USER_ID, NAME
ORDER BY USER_ID;

【讨论】:

这不适用于 USER_ID 为 4 的组。最小的 SEQ_ID 将是 3。 @Greg: powertip--缩进带有四个空格的文本以将其格式化为代码。单击发布时在工具栏中看到的橙色问号会将您带到描述此格式和其他格式的文档。 感谢格雷格的帮助。这是我的错误,必须是 3 而不是 4。感谢您理解我的问题。最好的问候 ps:最好问“如果你的意思是 3”而不是用负票来评判我...... blgnklc:从您的问题中看不出您到底想要什么。基本上有任意数量的可能选项。如果您包含小错误或拼写错误,则有任意数量的可能选项。否决票意味着“这个问题不清楚或没有用”,对于一个明显不清楚的问题,情况似乎很重要。 @blgnklc:当您因不清楚的问题而被否决时,您可以编辑问题并澄清。然后,您将获得投票。这就是 SO 的工作原理。

以上是关于如何使用选择查询为每个唯一的第二个值获取一个值中的最小值?的主要内容,如果未能解决你的问题,请参考以下文章

Python 函数可以只返回两个值中的第二个吗?

如何根据分隔符“|”之前的匹配值获取字符串中的第二个值?

在sharepoint中获取第二个日期时间字段

定位类中的第一个和第二个值

使用 itertools 按第二个值对连续元组进行分组

在 printf 语句中的第一个值之前打印第二个值的原因是啥? [复制]