关于统计查询的sql

2018-04-23  本文已影响0人  _Sisyphus

查询还款表中的三种支付方式每个使用的数量

  1. 方法一:使用GROUP BY 【70ms】
    SELECT payment_type AS '还款方式',COUNT(payment_type) AS '数量' FROM receive
    GROUP BY payment_type

  2. 方法二:使用嵌套的SELECT 【100~110ms】
    在每个 SELECT子句 中统计一个条件下的数据,然后用一个 主SELECT 把这些统计数据整合起来

     SELECT
       (SELECT COUNT(*) FROM `receive` WHERE `payment_type` =1) AS `连连`,
       (SELECT COUNT(*) FROM `receive` WHERE `payment_type` =2) AS `支付宝`,
       (SELECT COUNT(*) FROM `receive` WHERE `payment_type` =3) AS `手工`
    
  3. 方法三:使用CASE WHEN: 【60ms】
    这里的COUNT和CASE WHEN联合使用,做到了分类计数。先使用CASE WHEN,当满足条件时,将字段值设置为 1, 不满足条件时,将字段值设置为NULL,接着COUNT函数仅对非NULL字段进行计数

     SELECT 
       COUNT( CASE WHEN `payment_type` =1 THEN 1 ELSE NULL END ) AS `连连`, 
       COUNT( CASE WHEN `payment_type` =2 THEN 1 ELSE NULL END ) AS `支付宝`, 
       COUNT( CASE WHEN `payment_type` =3 THEN 1 ELSE NULL END ) AS `手工`
     FROM `receive`
    
上一篇 下一篇

猜你喜欢

热点阅读