Этот запрос возвращает ошибку, как будто она не содержится ни в агрегатной функции, ни в предложении GROUP BY.группа без функции агрегата и получить одно значение от него
SELECT SPEC_VALUE,SPEC_SKU
FROM spec
join specdb on specdb_tech_no = SPEC_TECH_NO
WHERE SPEC_TECH_NO = '20081'
Это возвращает
1 0035862
2 0051197
2 0063493
2 0013372
2 0089991
3 0087134
4 0002602
5 0002041
5 0002042
5 0002050
5 0002044
5 0024315
6 0085601
6 0090337
7 0002789
7 0002790
7 0002791
Теперь я хочу запрос должен вернуть первую группу по значению, как
1 0035862
2 0051197
3 0087134
4 0002602
5 0002041
6 0085601
7 0002789
Я попытался
SELECT SPEC_VALUE,SPEC_SKU
FROM spec
JOIN specdb on specdb_tech_no = SPEC_TECH_NO
WHERE SPEC_TECH_NO = '20081'
GROUP BY spec.SPEC_VALUE
Но это показывает ошибку:
"it is not contained in either an aggregate function or the GROUP BY clause."
Я использовал отличный, но он также показывает ошибки.
Distinct почти никогда не правильное решение. Одним из решений является использование агрегатной функции, например 'min (SPEC_SKU), как SPEC_SKU'. – Arvo
У вас нет предложения ORDER BY, так что только с этими двумя столбцами первое значение не имеет смысла. – Mihai
Вы не сможете выбрать, что у вас есть какой-то столбец упорядочения, чтобы указать движок, значение которого вы хотите получить из дубликатов на группу. –