`
shendixiong
  • 浏览: 398568 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

mysql 列转行以及年月分组

 
阅读更多
SELECT count(DISTINCT(a.rect_id)) zcount, a.job_dept, 
         DATE_FORMAT(submit_date, '%Y-%m') zsubmit_date
FROM
        表名 a
WHERE
       a.statu = 3
       AND a.rstatu = 2
       AND a.job_dept IN ('19', '20', '21')
GROUP BY
       a.job_dept,
       DATE_FORMAT(submit_date, '%Y-%m')

 其中关键在于DATE_FORMAT(submit_date, '%Y-%m')对时间年月进行了分组排序

 

SELECT
         zsubmit_date,
         MAX(CASE WHEN job_dept = '19' THEN zcount ELSE 0 END ) 19zcount,
         MAX(CASE WHEN job_dept = '20' THEN zcount ELSE 0 END ) 20zcount,
         MAX(CASE WHEN job_dept = '21' THEN zcount ELSE 0 END ) 21zcount
FROM
     (
       SELECT 
           count(DISTINCT(a.rect_id)) zcount, a.job_dept, 
           DATE_FORMAT(submit_date, '%Y-%m') zsubmit_date
       FROM
            表名 a
       WHERE
           a.statu = 3
           AND a.rstatu = 2
       	   AND a.job_dept IN ('19', '20', '21')
       GROUP BY
	   a.job_dept,
	   DATE_FORMAT(submit_date, '%Y-%m')
     ) q
GROUP BY
     zsubmit_date

 以上是mysql的列转行。其中关键点是case when的用法,用其来完成列转行的操作。用法等同于if else

分享到:
评论

相关推荐

    mysql列转行以及年月分组实例

    示例中的查询使用了嵌套结构,外层查询用于实现列转行,内层查询首先完成了原始数据的预处理,包括筛选满足条件的记录、计算不同部门的唯一rect_id数量(zcount)、以及按部门和年月进行初步分组。 ```sql FROM ...

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    MySQL 提供了两种转换数据布局的方法:行转列(Pivot)和列转行(Unpivot),这在处理复杂的数据汇总和展示时非常有用。本文将深入探讨这两种转换方法,并提供具体的 SQL 语句示例,以及创建示例表结构的 SQL 代码。...

    MySql 列转行实例

    总之,MySQL中的列转行操作是一个实用的技巧,尤其在处理多维度数据分析时,能够极大地提升数据的可读性和分析效率。通过存储过程,我们可以根据具体需求灵活地实现这一转换,使得复杂的数据变得更加易管理和解析。

    mysql-行转列、列转行

    标题“mysql-行转列、列转行”涉及到的是MySQL中的两种主要转换技巧: 1. **行转列(Pivot)**: 行转列通常用于将多行数据转换为单行的多个列。在MySQL中,没有内置的PIVOT函数,但可以通过使用`CASE`语句配合`...

    mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示

    MySQL 行转列、列转行、行列汇总、合并显示 MySQL 行转列是一种常用的数据处理操作,用于将同一列下的不同内容的几行数据转换成几列显示。例如,我们有一个成绩表 tb_score,其中包含 userid、subject 和 score 三...

    mysql 列转行的技巧(分享)

    下面小编就为大家带来一篇mysql 列转行的技巧(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    mysql列转为非固定字段

    -- MySQL 行转列 非固定列 2009-4-25 by kim -- CREATE TABLE `expense_log` ( -- `EXPENSE_ID` INT(10) DEFAULT NULL, -- `USER_ID` VARCHAR(45) DEFAULT NULL, -- `TOTAL` INT(11) DEFAULT NULL -- ) ENGINE=...

    mysql 列转行,合并字段的方法(必看)

    列转行:利用max(case when then) max—聚合函数 取最大值 (case course when ‘语文’ then score else 0 end) —判断 as 语文—别名作为列名 SELECT `name`, MAX( CASE WHEN course='\u8bed\u6587' THEN ...

    MySQL行转列与列转行.pdf

    ### MySQL行转列与列转行详解 #### 行转列 在数据库处理过程中,有时候我们需要将表中的数据从行的形式转换为列的形式,这样的操作称为“行转列”。这种需求通常出现在对数据进行汇总或者特定展示时。下面通过一个...

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    mysql只取年月日的SQL写法.sql

    mysql只取年月日的SQL写法

    mysql 行转列和列转行实例详解

    在MySQL数据库中,行转列和列转行是两种常见的数据转换操作,它们在数据分析和报表展示时尤其有用。下面将详细介绍这两种操作及其实例。 ### 行转列 行转列,即把原本多行的数据转换成单行,通过多个列来表示。这...

    MySQL之聚合查询、分组和排序

    ### MySQL之聚合查询、分组和排序 #### 聚合查询、分组与排序概述 聚合查询、分组和排序是关系型数据库系统中重要的数据处理方式之一,尤其是在MySQL这样的流行数据库管理系统中更是如此。这些操作可以帮助用户从...

    mysql增加列修改列名列属性以及删除列.txt

    mysql增加列修改列名列属性以及删除列,mysql增加列修改列名列属性以及删除列,mysql增加列修改列名列属性以及删除列,

    MySQL优化篇:排序分组优化.pdf

    MySQL优化篇:排序分组优化,主要关注的是在使用order by和group by关键字进行查询时的性能优化。order by关键字用于对查询结果进行排序,而group by关键字用于对数据进行分组汇总。这两个操作在SQL语句中非常常见,...

    sql 行专列 列转行 普通行列转换

    列转行是将多列的数据转换为单列,并增加一个标识列来区分原列信息。这通常可以通过`UNPIVOT`操作或者使用`UNION ALL`来实现。例如,如果我们有一个人口统计表,包含不同年龄段的人口数量,现在想要将这些数据合并成...

    mysql存储过程实现计算两个时间相差,并用年月日时分秒格式输出

    mysql获取两个时间相差年月日:使用mysql存储过程,实现计算两个时间的差值,并用年月日时分秒的格式输出,且从大到小为0时则不展示对应单位(如:相差1小时20秒 则展示'1时0分20秒')

Global site tag (gtag.js) - Google Analytics