溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql怎么統(tǒng)計同一字段不同值的個數(shù)

發(fā)布時間:2022-12-01 10:17:53 來源:億速云 閱讀:121 作者:iii 欄目:開發(fā)技術

今天小編給大家分享一下mysql怎么統(tǒng)計同一字段不同值的個數(shù)的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    在一個項目中,制作呃echart圖表的時候,遇到一個需求,需要從后端接口獲取數(shù)據(jù)----售票員的姓名和業(yè)績。所以需要在訂單表中,獲取不同售票員的訂單數(shù)量。

    訂單表


    mysql怎么統(tǒng)計同一字段不同值的個數(shù)

    解決方案匯總

    MySQL 統(tǒng)計一個列中不同值的數(shù)量

    需求:

    MySQL 統(tǒng)計一個列中不同值的數(shù)量,其中 origin 是用戶來源,其中的值有 iPhone 、Android 、Web 三種,現(xiàn)在需要分別統(tǒng)計由這三種渠道注冊的用戶數(shù)量。

    方案1

    SELECT count(*)
    FROM user_operation_log
    WHERE origin = 'iPhone';
     
    SELECT count(*)
    FROM user_operation_log
    WHERE origin = 'Android';
     
    SELECT count(*)
    FROM user_operation_log
    WHERE origin = 'Web';

    用 where 語句分別統(tǒng)計各自的數(shù)量。

    這樣查詢的量有點多了,如果這個值有 10 個呢,那還得寫 10 條相似的語句,很麻煩。

    方案2

    第一種寫法(用 count 實現(xiàn))

    SELECT
      count(origin = 'iPhone' OR NULL)  AS iPhone,
      count(origin = 'Android' OR NULL) AS Android,
      count(origin = 'Web' OR NULL)     AS Web
    FROM user_operation_log;

    第二種寫法(用 sum 實現(xiàn))

    SELECT
      sum(if(origin = 'iPhone', 1, 0))  AS iPhone,
      sum(if(origin = 'Android', 1, 0)) AS Android,
      sum(if(origin = 'Web', 1, 0))     AS Web
    FROM user_operation_log;

    第三種寫法(改寫 sum)

    SELECT
      sum(origin = 'iPhone')  AS iPhone,
      sum(origin = 'Android') AS Android,
      sum(origin = 'Web')     AS Web
    FROM user_operation_log;

    第四種寫法

    SELECT origin,count(*) num FROM user_operation_log GROUP BY origin;

    于是在這個項目中我選擇采用的是第四種寫法,因為一句話解決就是爽吧。。。。

    解決思路

    根據(jù)售票員id分組獲取不同分組的,售票員id+對應的訂單數(shù)量

    SELECT seller_id,COUNT(*) AS `value` FROM t_order GROUP BY seller_id ;

    mysql怎么統(tǒng)計同一字段不同值的個數(shù)

    內(nèi)連接之等值連接t_emp員工表,獲取id對應的員工姓名

    SELECT e.e_name AS `name`,COUNT(*) AS `value` FROM t_order o JOIN t_emp e ON e.e_id=o.seller_id  GROUP BY seller_id ;

    t_emp表


    mysql怎么統(tǒng)計同一字段不同值的個數(shù)


    mysql怎么統(tǒng)計同一字段不同值的個數(shù)

    最后echart實現(xiàn)的效果如下


    mysql怎么統(tǒng)計同一字段不同值的個數(shù)

    以上就是“mysql怎么統(tǒng)計同一字段不同值的個數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

    AI