查询date_part,如何让sub_query一起玩?

时间:2015-09-22 15:09:05

标签: sql postgresql

我有以下查询:

Select  date_part('Day', t.timestamp) as day_of_month, 
        Count(id) total, 
        (
            Select  Count(id) 
            From    the_table 
            Where   text_string_column Like '%keyword%'
        ) 
From    the_table   t 
Group By date_part('Day', t.timestamp) 
Order By date_part('Day', t.timestamp) Desc

返回

            count   day_of_month    total
            16445   21              447851
            16445   20              552149

我需要将计数与返回的日期(或任何其他date_part类型)相关

谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

实际上,您只需要点击一次表并使用SUM结合CASE来获取“条件计数”,而不是使用子查询,这会导致对同一个表进行第二次扫描。

例如,试试这个:

Select  date_part('Day', t.timestamp) as day_of_month, 
    Count(id) total, 
    sum(case when text_string_column Like '%keyword%' then 1 else 0 end)
From    the_table   t 
Group By date_part('Day', t.timestamp) 
Order By date_part('Day', t.timestamp) Desc