我有一个数据表:
table1
country date price
USA 2001-01-25 2
RUS 2001-01-25 17
GER 2001-01-25 30
USA 2001-02-25 11
RUS 2001-02-25 22
RUS 2001-02-26 25
我可以让所有的国家
SELECT DISTINCT country FROM table1;
country
USA
RUS
GER
拿到这个月的所有价格
SELECT sum(price), country FROM table1 WHERE date >= '2001-02-01' AND date < '2001-03-01' GROUP BY country, price;
sum(price) country
11 USA
47 RUS
但我也想看到一排代表国家“格”
sum(price) country
11 USA
47 RUS
0 GER
如何在clickhouse轻松完成?
1条答案
按热度按时间bnlyeluc1#
使用条件聚合:
你现在的问题
WHERE
条款是,它将过滤掉2001年2月期间完全没有匹配价格的国家。如果上述解决方案无法执行,我们可以将其作为包含所有国家/地区的表的联接来编写
table1
: