2011-03-25 508 views
3

我有數據:聚合功能檢查「如果含有」

Code Page  Task 
    2 1 Activity 
    2 2 Activity 
    2 3 Activity Symbols 
    2 4 Activity Symbols 
    2 5 Activity Symbols 
    2 12 Activity 
    2 12 Activity Symbols 
    2 999 Consider 
    2 999 Constituents 
    2 999 Material 
    2 999 Material Hazards 
    316 999 Constituents 
    356 999 Constituents 
    398 999 Constituents 
    604 70 Activity Symbols 
    604 999 Constituents 

我想組由Code併爲每個檢查,如果任何的該組中的記錄包含的「999」一個Page,如果是這樣的回報'真正'。是否有一個聚合函數可以做到這一點?或者也許有更好的方式來構建這樣的查詢?

+0

你只想包含一個999「頁面」的團體,或做你想做的所有團體和一個布爾標誌? – NPE 2011-03-25 17:15:12

回答

14
select code, 
max(case when page = '999' then 1 else 0 end) as has999 
from table 
group by code 
+0

啊是的這就是我想要的,我不認爲使用max – 2011-03-25 17:56:07

+0

@ m.edmondson:那麼,你認爲這個答案不值得接受嗎? :) – 2011-03-27 13:11:09

+0

@ m.edmondson:並不意味着要光顧(抱歉,如果它看起來像那樣)。當我讚揚某人的解決方案時,卻忘記了自己的經歷,但卻愚蠢地忘記了上癮,儘管我打算這樣做。最終我被建議upvote的答案,並非常高興如此。 :)除此之外,我完全同意你的觀點。再次抱歉。 – 2011-03-28 08:19:57