Showing
1 changed file
with
17 additions
and
9 deletions
| ... | @@ -36,28 +36,36 @@ module.exports = function (dbo) { | ... | @@ -36,28 +36,36 @@ module.exports = function (dbo) { |
| 36 | select generate_series('2020-01-24'::date, CURRENT_DATE, '1 days')::date today | 36 | select generate_series('2020-01-24'::date, CURRENT_DATE, '1 days')::date today |
| 37 | ) | 37 | ) |
| 38 | , stats as ( | 38 | , stats as ( |
| 39 | - select province_short_name province, d.today, max(confirmed_count) confirmed_count | 39 | + select country, province_short_name province, d.today, max(confirmed_count) confirmed_count |
| 40 | from days d | 40 | from days d |
| 41 | left join tb_mf_timeline_area ta on ta.update_time::date = d.today | 41 | left join tb_mf_timeline_area ta on ta.update_time::date = d.today |
| 42 | where 1=1 | 42 | where 1=1 |
| 43 | and province_name ~ :province | 43 | and province_name ~ :province |
| 44 | - group by 1,2 | 44 | + group by 1,2,3 |
| 45 | - order by 2, 1 | 45 | + order by 1,2,3 |
| 46 | ) | 46 | ) |
| 47 | , pr as ( | 47 | , pr as ( |
| 48 | - select province from stats group by 1 | 48 | + select country, province from stats group by 1,2 |
| 49 | ) | 49 | ) |
| 50 | , dat as( | 50 | , dat as( |
| 51 | - select pr.province, d.today, COALESCE(st.confirmed_count, max(st.confirmed_count) over(partition by pr.province order by d.today)) confirmed_count | 51 | + select pr.country, pr.province, d.today, COALESCE(st.confirmed_count, max(st.confirmed_count) over(partition by pr.province order by d.today)) confirmed_count |
| 52 | from pr | 52 | from pr |
| 53 | cross join days d | 53 | cross join days d |
| 54 | left join stats st on st.province = pr.province and st.today = d.today | 54 | left join stats st on st.province = pr.province and st.today = d.today |
| 55 | - order by 1,2 | 55 | + order by 1,2,3 |
| 56 | ) | 56 | ) |
| 57 | - select province, max(confirmed_count) max_count, jsonb_agg(today) days, jsonb_agg(confirmed_count) confirmed_counts | 57 | + , rpt as ( |
| 58 | + select country, province, today, confirmed_count, confirmed_count - COALESCE(lag(confirmed_count) over(partition by country, province order by today), 0) increase | ||
| 58 | from dat | 59 | from dat |
| 59 | - group by 1 | 60 | + ) |
| 60 | - order by 2 desc | 61 | + select country, province, max(confirmed_count) max_count, jsonb_agg(today) days, jsonb_agg(confirmed_count) confirmed_counts, |
| 62 | + jsonb_agg(increase) increase, | ||
| 63 | + max(confirmed_sum) confirmed_sum, | ||
| 64 | + max(increase_sum) increase_sum | ||
| 65 | + from ( select *, sum(confirmed_count) over(partition by country, today) confirmed_sum, sum(increase) over(partition by country, today) increase_sum from rpt | ||
| 66 | + ) t | ||
| 67 | + group by 1,2 | ||
| 68 | + order by country, confirmed_counts desc | ||
| 61 | `, {replacements: {province}, type: dbo.QueryTypes.SELECT}); | 69 | `, {replacements: {province}, type: dbo.QueryTypes.SELECT}); |
| 62 | 70 | ||
| 63 | return Result.Ok('成功!', result); | 71 | return Result.Ok('成功!', result); | ... | ... |
-
Please register or login to post a comment