Выполняю эти 2 запроса в моей БД. Первая возвращает 1 запись, а вторая возвращает 2241 (как я и ожидал). Я спрашиваю одно и то же, но по-разному. Во-первых, я использую DISTINCT
, а во втором я использую «GROUP BY». Разве это не то же самое?Различные результаты с DISTINCT и GROUP BY
/*returns 1 record*/
SELECT DISTINCT INVENTORY.location, INVENTORY.label, INVENTORY.version, SUM(INVENTORY.quantity) AS total, LABELS.description, LABELS.customer , LABELS.label
FROM INVENTORY
INNER JOIN LABELS
ON INVENTORY.label = LABELS.label
AND INVENTORY.version = LABELS.version
WHERE INVENTORY.location = 1
/*returns 2241 record*/
SELECT Inventory.location, Inventory.label, Inventory.version, SUM(INVENTORY.quantity) AS total, Labels.description, Labels.customer, LABELS.label
FROM Inventory
INNER JOIN LABELS
ON Inventory.label = Labels.label
AND Inventory.version = Labels.version
WHERE Inventory.location = 1
GROUP BY Inventory.label, Inventory.Version
На самом деле: оба недействительны SQL. Первая из них полностью отсутствует в требуемой 'group by', вторая не группируется во всех неагрегатных столбцах. Я удивлен, что SQLite даже принимает это. –
У меня нет ошибок ... !! – yaylitzis
@a_horse_with_no_name С каких пор DISTINCT требует GROUP BY? – m0skit0