2017-04-25 16 views
0

最早的日期我想選擇一個組,算上出現,也返回最早的一批。我正沿着使用子查詢與即時值,類似的思路思考:PostgreSQL的組,然後從每組

SELECT COUNT(submitdate), priority, 
(SELECT submitdate FROM opentickets WHERE priority = priority ORDER BY submitdate ASC LIMIT 1) 
FROM opentickets 
WHERE assignee IS NULL 
    GROUP BY priority 

,但我得到了所有優先級組相同的日期。有誰知道它是否可以使用像這樣的列值?例如,「priority = priority」變成「priority ='P1'」,然後是「P2」,「P3」等等。

所需的輸出

count priority submitdate 
    12  P1  "2017-04-03 10:48:14" 
152  P2  "2017-03-23 02:24:07" 
308  P3  "2017-03-03 05:06:43" 

回答

0

使用最大

SELECT COUNT(submitdate), priority, 
max(submitdate) 
FROM opentickets 
WHERE assignee IS NULL 
GROUP BY priority 
+0

哇,這是簡單的!謝謝! – James

1
create table test(priority varchar(10), submitdate timestamp); 
insert into test values 
('P1', '20170101'), 
('P1', '20170102'), 
('P1', '20170103'), 
('P2', '20170301'), 
('P2', '20170501'), 
('P3', '20170501'), 
('P3', '20170601'), 
('P3', '20170705'); 

select  priority, 
      count(submitdate) as count_dates, 
      max(submitdate) as max_date 
from  test 
group by priority; 
 
✓ 

8 rows affected 

priority | count_dates | max_date   
:------- | ----------: | :------------------ 
P2  |   2 | 2017-05-01 00:00:00 
P3  |   3 | 2017-07-05 00:00:00 
P1  |   3 | 2017-01-03 00:00:00 

dbfiddle here

相關問題