mysql如何統(tǒng)計同一字段不同值的個數(shù)
在一個項目中,制作呃echart圖表的時候,遇到一個需求,需要從后端接口獲取數(shù)據(jù)----售票員的姓名和業(yè)績
所以需要在訂單表中,獲取不同售票員的訂單數(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ù)量。
這樣查詢的量有點(diǎn)多了,如果這個值有 10 個呢,那還得寫 10 條相似的語句,很麻煩。
方案2
第一種寫法(用 count 實(shí)現(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 實(shí)現(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;
于是在這個項目中我選擇采用的是第四種寫法,因?yàn)橐痪湓捊鉀Q就是爽吧。。。。
解決思路
根據(jù)售票員id分組獲取不同分組的,售票員id+對應(yīng)的訂單數(shù)量
SELECT seller_id,COUNT(*) AS `value` FROM t_order GROUP BY seller_id ;
內(nèi)連接之等值連接t_emp
員工表,獲取id對應(yīng)的員工姓名
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表
最后echart實(shí)現(xiàn)的效果如下
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL窗口函數(shù)OVER使用示例詳細(xì)講解
這篇文章主要介紹了MySQL窗口函數(shù)OVER()用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01Mysql避免重復(fù)插入數(shù)據(jù)的4種方式
這篇文章主要介紹了Mysql避免重復(fù)插入數(shù)據(jù)的4種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02MySQL延遲關(guān)聯(lián)性能優(yōu)化方法
這篇文章主要介紹了MySQL延遲關(guān)聯(lián)性能優(yōu)化方法,本文講解了延遲關(guān)聯(lián)的背景、延遲關(guān)聯(lián)的分析、延遲關(guān)聯(lián)的解決等內(nèi)容,需要的朋友可以參考下2015-05-05MySql command line client命令操作大全
這篇文章主要介紹了MySql command line client命令操作大全,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01