私はこれら2つのクエリを自分のDBで実行します。最初のレコードは1レコードを返し、2レコード目は2241を返します(予想通り)。私は同じことを2つの異なる方法で尋ねます。最初はDISTINCT
を使用し、2番目は「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'を完全に欠いており、2番目はすべての非集約カラムをグループ化していません。私はSQLiteもそれを受け入れることに驚いています。 –
私は何かエラーはありません...! – yaylitzis
@a_horse_with_no_name DISTINCTにGROUP BYが必要なときは? – m0skit0