【问题标题】:How to Group result from mySQL如何对 mySQL 的结果进行分组
【发布时间】:2020-09-29 14:52:24
【问题描述】:

我的桌子:

datetime.                employment.        name
2019-11-25 12:32:12.     office.            Michael Jackson
2020-01-31 12:32:22.     production.        Jenny Darling
2019-12-25 12:32:12.     office.            Michael Jackson
etc.

这是一个“时间登记”表,因此每个挂载的名称必须是不同的。 (每个月有多少个独特的名字,按月份和就业分组)

现在我想创建一个表格,显示每年每个月有多少员工。
所以表格看起来像:

Year & Month.    Employment.   Number (Unique names)
-------------------------------------
2019-01.         Office.       50
2019-01          Production.   35
2019-02.         Office.       45
2019-02.         Production.   36

今年和上一年(2019 年和 2020 年)等等

类似:

SELECT * FROM table COUNT(DISTINCT(name)) AS number GROUP BY datetime AND employment

【问题讨论】:

    标签: mysql sql date group-by count


    【解决方案1】:

    您似乎想要聚合...但是您的查询在某些方面无效。我想你想要:

    select
        date_format(datetime, '%Y-%m') yr_month,
        employment,
        count(distinct name) no_unique_names
    from mytable
    group by yr_month, employment
    

    这为您提供每年/每月的行数和employment,以及相应的不同names 计数。

    【讨论】:

    • $query = "SELECT DATE_FORMAT(usr_stamp_in, '%Y-%m') year_month, usr_employment, COUNT(DISTINCT usr_name) no_unique_names FROM usr_time_reg GROUP BY year_month, usr_employment";
    • 无法运行查询:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'year_month, usr_employment, COUNT(DISTINCT usr_name) no_unique_names ' 附近使用正确的语法
    • @BjörnC:我的错,year_month 是 MySQL 中的保留字。固定。
    • Np。谢谢你。改变,它的工作原理。有时保留的名称隐藏得很好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多