Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL mit InnoDB:Wie vermeide ich die Verwendung von COUNT?

Setzen Sie Ihre Bedingungen in eine sum() . So erhalten Sie Einzelzählungen

SELECT SUM(sourceItem = 1 AND destinationItem = 1) AS count1,
       SUM(sourceItem = 1 AND destinationItem = 2) AS count2
FROM trades

Um die vollständige bedingte Zählung zu erhalten, tun Sie

SELECT SUM(case when sourceItem > 0 and destinationItem > 0 then 2
                when sourceItem > 0 or destinationItem > 0 then 1
                else 0 
           end) AS complete_sum
FROM trades

oder

SELECT SUM(sourceItem > 0) + sum(destinationItem > 0) AS complete_sum
FROM trades