回答

收藏

查询按日期范围分隔的行数

技术问答 技术问答 206 人阅读 | 0 人回复 | 2023-09-12

我有一个PostgreSQL9.2.1数据库,我试过,没有写SQL查询将显示给我testname失败的不同测试()的计数(current_status='FAILED如果没有失败,则显示0),按月隔离(last_update)。这是表的定义:
4 @5 l/ k0 k) p' i                                                                                                                                                            Table "public.tests"     Column     |            Type             |                          Modifiers                          ---------------- ----------------------------- ------------------------------------------------------------- id             | bigint                      | not null default nextval('tests_id_seq'::regclass) testname       | text                        | not null last_update    | timestamp without time zone | not null default now() current_status | text                        | not null我想从中得到的是:0 U% _6 r' C  Q! I1 ]8 o2 W7 z
    testname    | Jan2012  | Feb2012  | Mar2012  | Apr2012  | May2012   | Jun2012   | Jul2012   | Aug2012   | Sep2012   | Oct2012   | Nov2012   | Dec2012------------- ----------------------------------------------------------------------------------------------------------------------------------------- abq         |   2                                                       |  55                              |   2                                                       |         |                                                                                                                                                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |   8       |          |     6       |                                                       |          |  0 bar         |         |         |   2                                                       |         |                                                                                                                                                                                                                                | 8                  |   8       |   2                                                        |     6       |                                                       |          |  1 cho         |                                                                                                                                    |                                    |   2                                                       |   3                                               |  4           | 8                  |                                                                                                                                                                                   |   3                                                |     6       |                                     | 55                                                                                                                                                                                                                                                                                                                                                                            |  6在这一点上,我能想到的最好的方法是以下方法,但不能完全解决:
7 Z* ^6 \: E8 _SELECT testname,count(current_status) AS failure_countFROM testsWHERE current_status='FAILED'AND last_update>'2012-09-01'AND last_update我想我需要某种方式COALESCE在结果中显示0值,加上一些疯狂JOIN甚至需要一个窗口函数来显示多个月的结果?) `4 f, g4 G6 F4 A% X  _
                                                                ) M" K' C& a. R' m/ V& e
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则