Py学习  »  shA.t  »  全部回复
回复总数  2
10 年前
回复了 shA.t 创建的主题 » 如何通过查询将mysql组中的日期列值转换为列名[重复]

对于MySQL,您可以直接将条件放在 SUM() 功能,它将 计算为布尔值 0 1 这样你就可以根据你的标准而不使用 IF/CASE 声明

SELECT
    company_name,  
    SUM(action = 'EMAIL')AS Email,
    SUM(action = 'PRINT' AND pagecount = 1)AS Print1Pages,
    SUM(action = 'PRINT' AND pagecount = 2)AS Print2Pages,
    SUM(action = 'PRINT' AND pagecount = 3)AS Print3Pages
FROM t
GROUP BY company_name

DEMO

10 年前
回复了 shA.t 创建的主题 » 如何通过查询将mysql组中的日期列值转换为列名[重复]

我的解决方案是在没有任何轴心的t-sql中:

SELECT
    CompanyName,  
    SUM(CASE WHEN (action='EMAIL') THEN 1 ELSE 0 END) AS Email,
    SUM(CASE WHEN (action='PRINT' AND pagecount=1) THEN 1 ELSE 0 END) AS Print1Pages,
    SUM(CASE WHEN (action='PRINT' AND pagecount=2) THEN 1 ELSE 0 END) AS Print2Pages,
    SUM(CASE WHEN (action='PRINT' AND pagecount=3) THEN 1 ELSE 0 END) AS Print3Pages
FROM 
    Company
GROUP BY 
    CompanyName