2012-02-13 89 views
-1

我有一個情況,我想返回一個數據庫中的成員數目,我有6個類別在所有和大約15,000個成員。查詢數據庫與查詢數據表

因此是它更好地使用類似查詢數據庫,6個獨立時代「SELECT COUNT(*)」或者是它更好地回報所有記錄,只返回類別欄,然後查詢數據結果表的每6個類別來計算。

第一種方法限制了分貝查詢於一個,而是返回其具有被進一步處理更多的數據,

第二種方法查詢分貝六次但通過較少的數據並沒有進一步處理提供的結果。

我想我在數據庫引擎中要求更快或者是.net?我正在使用sqlserver 2008.net4

是否有任何最佳實踐或原因人們知道爲什麼我應該使用一種方法而不是其他方法?

謝謝

回答

2

我明白你只是需要Catetory和Count。因此,您可以按照以下步驟執行一次查詢。

SELECT CATEGORY, COUNT(CATEGRORY) TOTAL_COUNT 
FROM TABLE 
GROUP BY CATEGORY 
+0

對不起,我用上面的什麼,我試圖做一個簡單的例子。我真正的問題是,返回一個數據集並查詢它以返回六個不同的結果還是更快地運行6個單獨的數據庫調用會更快嗎? – 2012-02-13 09:08:13

+0

乾杯隊友虐待這個 – 2012-02-13 09:24:49

0

當你有一羣人時,查詢數據庫6次似乎不是一個好主意。更不用說如果您需要將類別加入到類別表中。此外,它有缺點,你必須硬編碼類別或查詢表JUST以獲得類別(如果沒有單獨的查找類別表)。如果您查詢數據庫以獲得6個類別的消息...您將如何執行此操作?與選擇不同?用一組?

在任何情況下,只是爲了獲得所有行中的類別,這將是一個沉重的查詢。所以,如果你要執行一個沉重的查詢,至少做到這一點的最簡單的方法:

select category, count(*) CategoryCount from table 
group by category 
+0

的變化我有什麼是在SQLServer中,我查詢有一個領域,如移動,母親,出生日期等等的看法。 我需要根據做輸出不同的數字來我顯示什麼是人的數據, 即 #1有多少人有手機號碼, #2有多少人有孩子(需要一些邏輯) 有些查詢是簡單,有些很複雜 對每個數據庫運行一個查詢更好嗎? I.e select移動不爲空的表中的select count(id) 或者從數據庫中獲取單個表到應用程序並處理所有在應用程序級別的繁重工作更好嗎? – 2016-04-16 21:58:11