【问题标题】:Mysql Pivot Table group by two columnsMysql Pivot Table 按两列分组
【发布时间】:2013-11-14 06:38:45
【问题描述】:

我在使用 Mysql 创建数据透视表时遇到问题。

实际查询如下

SELECT DISTINCT `bills_organization`.`name`,
        IF(`bills_bill`.`os_status`=1,COUNT(`bills_bill`.`os_status`),NULL) AS Unnknown,
        IF(`bills_bill`.`os_status`=2,COUNT(`bills_bill`.`os_status`),NULL) AS Introduced,
        IF(`bills_bill`.`os_status`=3,COUNT(`bills_bill`.`os_status`),NULL) AS Passedonechamber,
        IF(`bills_bill`.`os_status`=4,COUNT(`bills_bill`.`os_status`),NULL) AS Passedbothchambers,
        IF(`bills_bill`.`os_status`=5,COUNT(`bills_bill`.`os_status`),NULL) AS Enacted
FROM `bills_mybill` 
INNER JOIN `auth_user` ON (`bills_mybill`.`user_id` = `auth_user`.`id`) 
LEFT OUTER JOIN `bills_bill` ON (`bills_mybill`.`bill_id` = `bills_bill`.`id`) 
LEFT OUTER JOIN `bills_userprofile` ON (`auth_user`.`id` = `bills_userprofile`.`user_id`) 
LEFT OUTER JOIN `bills_organization` ON (`bills_userprofile`.`organization_id` = `bills_organization`.`id`) 
WHERE `bills_mybill`.`favorite` = TRUE  
GROUP BY `bills_organization`.`name`,`bills_bill`.`os_status`

这个输出如下

名称 Unnknown Introduced Passedonechamber Passedbothchambers Enacted 空 空 5 空 空 空 空 空 空 空 1 空 AEE NULL 16 NULL NULL NULL AEE NULL NULL 1 NULL NULL AEE 空 空 空 4 空 AEE 空 空 空 空 2 测试 NULL 6 NULL NULL NULL 测试 NULL NULL NULL 2 NULL 测试 NULL NULL NULL NULL 6

我想要组织,并且排成一行。我不想要多行。

提前致谢。

【问题讨论】:

    标签: mysql group-by pivot-table


    【解决方案1】:
    SELECT `bills_organization`.`name`,
            SUM(`bills_bill`.`os_status`=1) AS Unnknown,
            SUM(`bills_bill`.`os_status`=2) AS Introduced,
            SUM(`bills_bill`.`os_status`=3) AS Passedonechamber,
            SUM(`bills_bill`.`os_status`=4) AS Passedbothchambers,
            SUM(`bills_bill`.`os_status`=5) AS Enacted
    FROM `bills_mybill` 
    INNER JOIN `auth_user` ON (`bills_mybill`.`user_id` = `auth_user`.`id`) 
    LEFT OUTER JOIN `bills_bill` ON (`bills_mybill`.`bill_id` = `bills_bill`.`id`) 
    LEFT OUTER JOIN `bills_userprofile` ON (`auth_user`.`id` = `bills_userprofile`.`user_id`) 
    LEFT OUTER JOIN `bills_organization` ON (`bills_userprofile`.`organization_id` = `bills_organization`.`id`) 
    WHERE `bills_mybill`.`favorite` = TRUE  
    GROUP BY `bills_organization`.`name`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      相关资源
      最近更新 更多