您可以创建一个包含日期名称的表,然后在该表上执行左连接。
查看您拥有的表结构会有所帮助,但如果我要这样做,我会执行以下操作:
create table stats (dayname varchar(3), "value" int);
create table daynames (dayname varchar(3));
insert into stats values ('Sun', 5), ('Mon', 4), ('Wed', 13), ('Sun', 3), ('Tue', 5), ('Sat', 5), ('Mon', 32);
insert into daynames values ('Sun'),('Mon'),('Tue'),('Wed'),('Thu'),('Fri'),('Sat');
select daynames.dayname, sum("value") from daynames left outer join stats on stats.dayname=daynames.dayname group by daynames.dayname;
| dayname | sum |
|---------+-----|
| Fri | |
| Mon | 36 |
| Sat | 5 |
| Sun | 8 |
| Thu | |
| Tue | 5 |
| Wed | 13 |
对于未在数据中表示的日期的总和,您将有空值,但您可以将它们转换为零,具体取决于您的数据库服务器。