Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

संचयी रूप से `COUNT(*)` का योग नहीं किया जा सकता

मैं @Ashalynd से सहमत हूं, गिनती (*) का मूल्य अभी तक मूल्यांकन नहीं किया गया है। यहाँ मैंने एक छोटा सा प्रयोग किया है:

1.
    SELECT
        GROUP_ID,    
        @COUNTER := @COUNTER + COUNT(*)  GROUPCOUNT,
        @COUNTER COUNTER
     FROM
        TEST_GROUP_CUMULATIVE, 
        (SELECT @COUNTER := 0) R
    GROUP BY
        GROUP_ID;

-- RESULT
============

   GROUP_ID    GROUPCOUNT    COUNTER
  ------------------------------------     
   1           1             0
   2           1             0
   3           1             0

2.
    SELECT @COUNTER;

    -- RESULT
    =============

    @COUNTER
    --------
    1

प्रत्येक समूह के लिए चर को 0 के रूप में प्रारंभ किया जा रहा है। इसका अर्थ है कि COUNT(*) का मूल्यांकन अभी तक नहीं किया गया है।

साथ ही, जब आप ऐसा करते हैं:

 1.
    SELECT
        GROUP_ID,    
        @COUNTER := @COUNTER + 1  GROUPCOUNT,
        @COUNTER COUNTER
     FROM
        TEST_GROUP_CUMULATIVE, 
        (SELECT @COUNTER := 0) R
    GROUP BY
        GROUP_ID;

-- RESULT
============
   GROUP_ID    GROUPCOUNT    COUNTER
  ------------------------------------     
   1           1             1
   2           1             2
   3           1             3

2.    
SELECT @COUNTER;

    -- RESULT
    =============

    @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. SQL क्वेरी में एक्सेल दिनांक पैरामीटर

  2. संग्रहित प्रक्रियाओं में लोड डेटा की अनुमति नहीं है

  3. SQL सबसे सामान्य मानों का चयन करें

  4. पुनरावर्ती कार्यों/कैलेंडर को विकसित/प्रबंधित/डिज़ाइन करने का सर्वोत्तम तरीका

  5. mysql-workbench नहीं खोल सकता