如何解决SQL查询根据所选的列数返回不同的结果
| 你好 我正在写一个查询,对我得到的结果有点困惑。 选择不重复(序列号) 来自AssyQC 该查询返回309,822个结果 但是,如果我修改select语句以包括如下不同的列 选择非重复(序列号),SCAN_TIME 来自AssyQC 该查询返回309,827个结果。我添加的列越多,显示的结果就越多。 我认为结果将只绑定到最初返回的唯一的serial_number。那就是我想要的,只有不同的serial_numbers 谁能向我解释这种行为? 谢谢解决方法
“ 0”不仅适用于“ 1”,还适用于整个选定的列列表。
添加的列越多,显然获得的独特组合就越多。
编辑
从您对Cade的答案的评论
假设我想要最大/最新
时标
这就是你所需要的。
SELECT serial_number,MAX(SCAN_TIME) AS SCAN_TIME
FROM AssyQC
GROUP BY serial_number
或者,如果您想要其他列
;WITH CTE AS
(
SELECT *,ROW_NUMBER() OVER (PARTITION BY serial_number
ORDER BY SCAN_TIME DESC) AS RN
FROM AssyQC
)
SELECT *
FROM CTE
WHERE RN=1
,您可能正在寻找
select distinct on serial_number serial_number,SCAN_TIME from AssyQC
请参阅以下相关问题:
SQL / mysql-选择唯一/唯一,但返回所有列?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。