2013-05-02 24 views
0

我無法弄清楚: 我有一個表稱爲與市場,zip5,MHI,MHV,TheTable等字段ImportantaRecords我想通過zip5組合所有記錄已經TheTable =「毫克」 ......我想這:SQL組的問題,當我嘗試獲取一些信息

select a.Market,a.zip5,count(a.zip5),a.MHI,a.MHV,a.TheTable from 
    (select * from ImportantaRecords where TheTable = 'mg') a 
    group by a.Zip5 

但它給我的經典誤差不是aggrefate功能

,然後我嘗試這樣做:

select Market,zip5,count(zip5),MHI,MHV,TheTable from ImportantaRecords where TheTable = 'mg' 
    group by Zip5 

和同樣的東西...

任何幫助嗎?

回答

1

您沒有說明您所使用的數據庫,但如果你得到關於在聚合函數不是列的錯誤,那麼你可能需要未在聚合函數添加列到GROUP BY

select Market, 
    zip5, 
    count(zip5), 
    MHI, 
    MHV, 
    TheTable 
from ImportantaRecords 
where TheTable = 'mg' 
group by Market, Zip5, MHI, MHV, TheTable; 

如果由其他列編組改變,你期待,那麼你可以使用子查詢得到結果的結果:

select i1.Market, 
    i1.zip5, 
    i2.Total, 
    i1.MHI, 
    i1.MHV, 
    i1.TheTable 
from ImportantaRecords i1 
inner join 
(
    select zip5, count(*) Total 
    from ImportantaRecords 
    where TheTable = 'mg' 
    group by zip5 
) i2 
    on i1.zip5 = i2.zip5 
where i1.TheTable = 'mg' 
+0

感謝的人......第一個查詢應該是很明顯我和你是對的:這是正確的查詢。至於第二個查詢:解決了我正在處理的另一個問題......你是一個心理學家嗎?我有任何機會嗎? :)謝謝很多人... – Nathan 2013-05-02 16:35:04

+0

@Nathan歡迎您! – Taryn 2013-05-02 16:35:25