【发布时间】:2019-08-07 01:45:13
【问题描述】:
在我的查询中,我有多个 Case When 子句,其中一个表中的唯一数字字符串将指示输出中的唯一字符串/句子值。我目前的问题是我的 Case When 输出正在处理输出中的总计数,但是由于存在多个唯一字符串,这些字符串不在第一个表中,而在第二个表中存在,应该在 else 语句中总计为一个总数,每个计数都在自己的行中。
我尝试在查询结束时对 GROUP BY 子句执行 ROLLUP,但没有得到我想要的预期输出。
这是我现在正在使用的:
SELECT
F.Identifier, F.Videogame, F.Developer,
CASE WHEN S.String='1581' THEN 'Made by billy'
WHEN S.String='1903' THEN 'Made by bob'
WHEN S.String='5849' THEN 'Made by lilly'
ELSE 'worked on by someone else' END AS Final_Name,
COUNT(distinct S.User_ID) as Count
FROM
table1 as F
JOIN
table2 as S
ON
F.Identifier=S.Identifier
GROUP BY
F.Identifier, F.Videogame, F.Developer, S.String
这是我目前得到的输出:
abcd | red dead | company1 | worked on by someone else | 1
abcd | red dead | company1 | Made by billy | 1
defg | halo 3 | company2 | Made by bob | 1
defg | halo 3 | company2 | worked on by someone else | 1
defg | halo 3 | company2 | worked on by someone else | 1
hijk | fortnite | company3 | Made by lilly | 1
这是我想要实现的输出:
abcd | red dead | company1 | worked on by someone else | 1
abcd | red dead | company1 | Made by billy | 1
defg | halo 3 | company2 | Made by bob | 1
defg | halo 3 | company2 | worked on by someone else | 2
hijk | fortnite | company3 | Made by lilly | 1
【问题讨论】:
标签: sql google-bigquery