2013-10-15 48 views
0

例:計數的字段相同值

我有一個HUGE查詢與union帶來了大量的數據,這些數據當中,我想知道,多少次記錄同一個人的只存在於場name如同:

加布裏埃爾
- 記錄1
- 記錄2
- 記錄3

若昂
- 記錄1
- 記2
- 記3

所以加布裏埃爾和若昂每一個在我的RecordSet 3個數據行,我需要有一個統計許多的它重複多次的另一個領域,而且我同時需要所有行,這就是爲什麼我使用groupby

更新 MySQL視圖

+4

你的查詢是不可讀的,它不鼓勵你來幫助你。做個好事,並從查詢中刪除一些垃圾。 – Pellared

+0

每次我嘗試刪除一些垃圾,只留下重要的我得到負面...我會嘗試 – PlayHardGoPro

+1

看看這個問題的SQL答案:http://stackoverflow.com/questions/19385738/distinguish-duplicates-in -a-foreach-loop-from-sql/19385994在你的情況中,如果你將上面的查詢放入一個VIEW中,那麼它更容易在提供的鏈接中使用該方法對(SELECT GROUP BY )來自同一個VIEW並獲得您的總數。我同意其他評論者的看法,這個查詢看起來很糟糕,所以你可能會用我建議的方法來解決性能問題,但它會爲你提供你所要求的。 –

回答

1

現在,你有包裝的複雜的邏輯視圖,你可以構建一個這樣的查詢,讓你在找什麼:

SELECT vt.*, vtij.nome_count 
FROM view_teste vt 
    INNER JOIN (SELECT Nome, count(1) as nome_count FROM view_teste 
     WHERE [additional_filter_conditions] 
      GROUP BY Nome) vtij on vtij.Nome = vt.Nome 
WHERE [additional_filter_conditions] 

其他注意事項:( 1)這可能不是高性能的,但值得嘗試,因爲你沒有發起這個查詢!優化這個查詢將是一個野獸。 (2)你的視圖中有一個ORDER BY子句,這是一個不必要的性能命中。你應該刪除它並在你的查詢中執行所需的ORDER BY,而不是在你的視圖中。

+0

我知道這個查詢全部搞砸了,但正如我所說,這是很久以前,而不是我。我有點困惑,究竟應該在哪裏運行?我的意思是,我從來沒有用過視圖...; X 我知道你不必回答這樣一個愚蠢的問題,但如果你能幫我一個忙hehe = x 謝謝! – PlayHardGoPro

+1

@PlayHardGoPro - 一旦你在數據庫中有一個VIEW,當你編寫一個查詢時,你就把它當作一張表來對待。 http://stackoverflow.com/questions/6015175/difference-between-view-and-table-in-sql –

+0

謝謝!我只是對如何/在哪裏插入現有的查詢片斷感到困惑...... – PlayHardGoPro