我正在尝试创建一个交叉表,其中行=月,列=天(即1、2、3、4...31)。
Month | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ...
------+------+------+-----+-----+-----+-----+-----+-----+-----+-----+------+------
9 | 1000 | 1500 | | | | | 500 | | | | 1500 | 2000
8 | 1000 | | | | | | | | | | |
Run Code Online (Sandbox Code Playgroud)
我的查询如下:
SELECT * FROM crosstab(
$$
SELECT
extract(month from created_at) AS themonth,
extract(day from created_at) AS theday,
COUNT(*)
FROM public.users …Run Code Online (Sandbox Code Playgroud) 我正在寻找以下数据的每个组的前2个值。
Brand | Product | Rank
A | P1 | 1000
| P2 | 1210
| P3 | 2000
| P4 | 600
| P5 | 756
| P6 | 867
B | P1 | 549
| P2 | 1572
| P3 | 3490
| P4 | 2341
| P5 | 431
| P6 | 321
C | P1 | 421
| P2 | 121
| P3 | 805
| P4 | 1202
| P5 | 4032
| P6 | …Run Code Online (Sandbox Code Playgroud) 我想隔离一些具有特定标题的电子邮件。我可以在 where 子句中使用与 OR 连接的多个“like”。这给了我一些结果。但是,如果我尝试在 ('____'、'____' 等) 中执行____,代码会突然返回任何内容。
这是行不通的。
select DATE_TRUNC(DATE(send_time,"America/Los_Angeles"), week(monday)) as week,
status,
settings_title,
sum(emails_sent) as emails_sent,
sum(report_summary_opens) as report_summary_opens,
sum(report_summary_unique_opens) as report_summary_unique_opens,
sum(report_summary_subscriber_clicks) as report_summary_subscriber_clicks
from mailchimp.campaigns_view
where status = 'sent'
and settings_title in ('%_LL_%', '%_IC_%', '%_AC_%', '%_CC_%', '%_PC_%')
group by 1,2,3
order by 1 desc
Run Code Online (Sandbox Code Playgroud)
然而,这确实有效。
select DATE_TRUNC(DATE(send_time,"America/Los_Angeles"), week(monday)) as week,
status,
settings_title,
sum(emails_sent) as emails_sent,
sum(report_summary_opens) as report_summary_opens,
sum(report_summary_unique_opens) as report_summary_unique_opens,
sum(report_summary_subscriber_clicks) as report_summary_subscriber_clicks
from mailchimp.campaigns_view
where status = 'sent'
and (settings_title like '%_LL_%'
or …Run Code Online (Sandbox Code Playgroud)