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

Не може да се сумира кумулативно „COUNT(*)“.

Съгласен съм с @Ashalynd, стойността на count(*) все още не е оценена. Ето един малък експеримент, който направих:

<предварителен код>1. SELECT GROUP_ID, @COUNTER :=@COUNTER + COUNT(*) GROUPCOUNT, @COUNTER COUNTER FROM TEST_GROUP_CUMULATIVE, (SELECT @COUNTER :=0) R GROUP BY GROUP_ID;-- РЕЗУЛТАТ==============GROUP_ID GROUPCOUNT COUNTER ------------------------------------ 1 1 0 2 1 0 3 1 02. ИЗБЕРЕТЕ @БРОЯЧ; -- РЕЗУЛТАТ =============@COUNTER -------- 1

За всяка група променливата се инициализира като 0. Това означава, че COUNT(*) все още не е оценен.

Освен това, когато го направите:

 1. ИЗБЕРЕТЕ GROUP_ID, @COUNTER :=@COUNTER + 1 GROUPCOUNT, @COUNTER COUNTER FROM TEST_GROUP_CUMULATIVE, (SELECT @COUNTER :=0) R GROUP BY GROUP_ID;-- РЕЗУЛТАТ============GROUP_ID GROUPCOUNT COUNTER ------------------------------------ 1 1 1 2 1 2 3 1 32. ИЗБЕРЕТЕ @COUNTER; -- РЕЗУЛТАТ =============@COUNTER -------- 3 

Не е необходимо да оценява 1. Той директно го сумира и ви дава кумулативната сума.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ефективен начин за запазване на масив и неговите ключове в база данни

  2. PHP PDO Добавяне на филтър към всички заявки

  3. Вмъкнете стойност на полето за динамичен избор в базата данни на Mysql и покажете съобщението за изпратените данни

  4. Java SSH MySQL връзка

  5. Как да запишете податрибут в 3-та таблица в laravel