Здравствуйте, я пишу запрос и немного запутался в результатах, которые получаю.
Выберите отдельный (serial_number) из AssyQC
Этот запрос возвращает 309822 результата.
Однако, если я изменю оператор выбора, чтобы включить другой столбец, как показано ниже
Выберите отдельный (серийный_номер), SCAN_TIME из AssyQC
Запрос возвращает 309 827 результатов. Чем больше столбцов я добавлю, тем больше будет результатов.
Я думал, что результаты будут привязаны только к отдельному serial_number, который был возвращен изначально. Это то, что я хочу, только отдельные serial_numbers
Может ли кто-нибудь объяснить мне такое поведение?
Благодарность
2 ответа
SELECT distinct
применяется ко всему выбранному списку столбцов, а не только к serial_number
.
Чем больше столбцов вы добавите, тем больше уникальных комбинаций вы получите.
Изменить
Из вашего комментария к ответу Кейда
скажем, мне нужна самая большая / последняя отметка времени
Это то, что вам нужно.
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
serial_number
имеют более одного SCAN_TIME
из чисел в вашем вопросе (или, возможно, в одном может быть 5 scan_times
и т. Д.)
Ты наверное ищешь
select distinct on serial_number serial_number, SCAN_TIME from AssyQC
Смотрите этот связанный вопрос:
SQL / mysql - Выбрать отдельный / УНИКАЛЬНЫЙ, но вернуть все столбцы?
Похожие вопросы
Связанные вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.