MYSQL使用group by,如何查询出总记录数

SELECT
    t.report_date,
    t.user_id 
FROM
    my_table t 
GROUP BY
    t.user_id,
    t.report_date

比如有这样一条SQL,根据t.user_id,t.report_date两个字段统计

这样前端页面能展示数据,但往往需要一个总记录数,在有分页的情况下用到

一种解决方法是在外面套一层,然后对其count(*)

SELECT
    COUNT(*) 
FROM
    ( SELECT t.report_date, t.user_id FROM my_table t GROUP BY t.user_id, t.report_date ) AA

还有一种简单的方法可以这样写

SELECT
    COUNT( DISTINCT report_date, user_id ) 
FROM
    my_table

 

这样就针对上面的group by查询显示其总记录数
 如果只对user_id group by

SELECT
    t.user_id 
FROM
    my_table t 
GROUP BY
    t.user_id
SELECT
    COUNT( DISTINCT user_id ) 
FROM
    my_table

 

posted @ 2021-07-20 10:59  石三爷  阅读(2341)  评论(0编辑  收藏  举报