sql >> Databasteknik >  >> RDS >> Mysql

Hur väljer man bara grupperade poster om varje post i en grupp uppfyller ett visst kriterium i MySQL?

Jag föreslår följande fråga:

SELECT COUNT(a.id) AS total_records, a.disregard_inventory, a.qty
    FROM artikelstammdaten a
    ...
GROUP BY a.style
HAVING (SUM(a.qty) != 0 OR (a.disregard_inventory = 1))
       AND (SUM(qty>0) = total_records)

Det sista villkoret jag lade till i frågan gör det möjligt att returnera en stil endast om antalet storlekar för denna produkt (total_records ) är lika med antalet tillgängliga storlekar för denna produkt (SUM(qty>0) ).
qty>0 returnerar antingen 0 (när produkten inte är tillgänglig i den givna storleken, eller 1 (när den är tillgänglig). Så SUM(qty>0) returnerar ett heltal mellan 0 och det totala antalet storlekar.



  1. Word anagrammer med sql's %

  2. mysql 5.7 log-slow-queries-fel

  3. Hur man ignorerar Duplicate Key-fel i T-SQL (SQL-server)

  4. Åtkomst nekad för MYSQL ERROR 1045