繁体   English   中英

我需要一个查询,该查询将获取具有4种不同条件的sum(column),其中条件按条件分组

[英]I need a query that will get the sum(column) with 4 different where conditions which includes group by condition

这是我的查询:

SELECT
    date,
    (SELECT sum(sessions) as org FROM datatwo WHERE medium='Organic Search' GROUP by date),
    (SELECT sum(sessions) as soc FROM datatwo WHERE medium='Social' GROUP BY date),
    (SELECT sum(sessions) as dir FROM datatwo WHERE medium='Direct' group by date),
    (SELECT sum(sessions) as ref FROM datatwo WHERE medium='Referral')
FROM datatwo
GROUP BY date

我试图在一个查询中组合4个查询,但出现此错误,我正在使用mysql DB。

1242-子查询返回多于1行

当您将查询结果用作列时,它必须恰好返回一行和一列。 像这样的表达式:

(SELECT sum(sessions) as org FROM datatwo WHERE medium='Organic Search' GROUP by date)

将为每个不同的date值返回一行。

我怀疑你想要这个:

SELECT
    date,
    sum(case when medium='Organic Search' then sessions end) as org,
    sum(case when medium='Social' then sessions end) as soc,
    sum(case when medium='Direct' then sessions end) as dir,
    sum(case when medium='Referral' then sessions end) as ref
FROM datatwo
GROUP BY date

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM