2013-03-21 60 views
2

我使用PostgreSQL和有這樣的表中彙總數據:請參閱SQL小提琴這裏:http://sqlfiddle.com/#!1/253b4/1如何在SQL嵌套組

CREATE TABLE usage_sample 
(
    id serial primary key, 
    category text NOT NULL, 
    name text NOT NULL, 
    sample_time timestamp with time zone NOT NULL 
); 

我需要寫一個返回計數數查詢每分鐘內的樣本,併爲每個類別和名稱的組合計算這組計數。所以輸出,我們是這樣的:

cat1, act1, minute1, count 
cat1, act1, minute2, count 
cat1, act2, minute1, count 
cat1, act2, minute3, count 
cat2, act1, minute2, count 
... 

我知道如何使用GROUP BY和如何獲得類別和行動的每一個組合計數得到的每分鐘的計數,但我無法弄清楚如何將這些組合起來,這樣我就可以嵌套分組和計數。

sql小提琴http://sqlfiddle.com/#!1/253b4/1顯示了一個示例數據集和我試過的查詢。任何人都可以給我如何得到我需要的結果的建議嗎?

回答

4

這是你想要的嗎?

select category, name, date_trunc('minute', sample_time) as minute, count(*) 
from usage_sample 
group by category, name, date_trunc('minute', sample_time) 
order by category, name, minute 
+0

這是有效的。不太清楚爲什麼我以前沒有看到。謝謝。我有一個更新的小提琴在這裏:http://sqlfiddle.com/#!1/785a0/2 – Allen 2013-03-21 14:31:06