【问题标题】:Total users per period in mysqlmysql中每个时期的用户总数
【发布时间】:2016-10-28 08:26:09
【问题描述】:

我需要在一个判断季度查看注册用户

例如:- 季度“Jan-Mar”:20

例如:- 季度“Apr-Jun”:30

id = id_ju1
registration date =date_regis
table = master

SELECT count(DISTINCT(id_ju1)), 
CASE 
WHEN month(date_regis) >=1 and month(date_regis) <=3 THEN 'Jan-Mar' 
WHEN  month(date_regis) >=4 and month(date_regis) <=6 THEN 'Apr-Jun' END 
FROM master

【问题讨论】:

    标签: mysql count case


    【解决方案1】:

    您可以为此使用 QUARTER 函数。

    Dates that have a month of Jan-Mar would return 1.
    Dates that have a month of Apr-Jun would return 2.
    Dates that have a month of Jul-Sep would return 3.
    Dates that have a month of Oct-Dec would return 4.
    

    参考:https://www.techonthenet.com/mysql/functions/quarter.php

    SELECT QUARTER(date_regis) AS quarter, COUNT(DISTINCT(id_ju1)) AS idcount
    FROM master 
    GROUP BY QUARTER(date_regis)
    ORDER BY QUARTER(date_regis)
    

    【讨论】:

    • 嗨,谢谢你的回答,我跑得很好,我还有一个问题,还显示了第 0 季度:当我删除第一个元素时
    • 请将此标记为正确。如果你有答案。
    • 感谢您的回复。为什么在这里你想要零?
    • 为此,您可以将 case 语句与 QUARTER() 一起使用
    • o 不,我的意思是返回我的 5 个句点,第五个是 0,看liceotommys.edu.co/img.png,因为我可以删除它
    【解决方案2】:

    试试下面的方法:

    SELECT count(DISTINCT(id_ju1))
    FROM
    (
    SELECT ID_JUN1,
    CASE 
    WHEN month(date_regis) >=1 and month(date_regis) <=3 THEN 'jun-mar'
    WHEN  month(date_regis) >=4 and month(date_regis) <=6 THEN 'mar-jun' END AS Quarter
    FROM master
    )
    GROUP BY Quarter
    

    【讨论】:

      猜你喜欢
      • 2013-05-24
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      相关资源
      最近更新 更多