2011-03-25 280 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