Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL с InnoDB:Как да избегнем използването на COUNT?

Поставете вашите условия в sum() . По този начин получавате единични преброявания

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

За да получите пълния условен брой, направете

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

или

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да използвам mySQL replace() за заместване на низове в множество записи?

  2. Извличане само на дата от полето datetime (mysql) и присвояването й на php променлива

  3. Не можете да се свържете с базата данни mysql?

  4. mysql заявка за динамично конвертиране на данни от редове в колони

  5. Как можем да използваме което и да е от валидирането при пролетно зареждане?