2012-02-13 1 views
-1

データベースのメンバー数をカテゴリ別に返したい場合は、全部で6つのカテゴリと約15,000のメンバーがあります。クエリデータベースとクエリデータテーブル

したがって、 "select count(*)"のようなものを使用してデータベースを6回別々に照会する方が良いですか、すべてのレコードを戻し、カテゴリー列のみを戻してから、カウントを取得する6つのカテゴリ。

最初の方法は、1つに、DBクエリを制限するが、さらに処理されなければならないより多くのデータを返し、

第二の方法は、DBを6回照会が、少ないデータ及びさらなる処理を介して結果を提供します。

私はデータベースエンジンの中で何を求めているのでしょうか.netですか?私はsqlserver 2008 with .net4を使用しています

私が他の方法よりも1つの方法を使用すべき理由を知っているベストプラクティスまたは理由がありますか?

ありがとうございます。

答えて

2

私はCatetoryとCountが必要なことを理解しています。だから、次のように1回だけクエリを実行できます。

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

申し訳ありません私は何をしようとしているの簡単な例として上記を使用しました。私の本当の疑問は、1つのデータセットを返し、6つの異なる結果を返すようにクエリを呼び出すこと、または6つの別々のデータベース呼び出しを迅速に実行することです。 –

+0

このようなバリエーションを持って乾杯してしまいました –

0

あなたがグループを持っている間に、DBを6回質問するのは良い考えではないようです。カテゴリをカテゴリテーブルに登録する必要がある場合はもちろんですが、それに加えて、カテゴリをハードコーディングするか、カテゴリを取得するためにテーブルをクエリする(別個の参照カテゴリテーブルがない場合)必要があるという欠点があります。 6つのカテゴリをdinamically取得するためにデータベースにクエリを行う場合...どのようにあなたはそれをやりますか?選択とは何か?グループは?

いずれの場合も、すべての行に存在するカテゴリを取得するだけで、重いクエリになります。重いクエリを実行する場合は、少なくとも最も簡単な方法で実行してください。

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

私はSQLServerのビューで、モバイル、母、生年月日などのフィールドを持つクエリを実行しています。私は個人データ、 すなわち人々は、人々は子供たちが(いくつかのロジックが必要です)持っているどのように多くの携帯電話番号、 #2を持っているどのように多くの #1 一部のクエリであることに基づいて自分のディスプレイにそれを出力異なる番号を行うために必要なもの 簡単ですが、複雑なものもあります データベースごとにクエリを実行する方が良いでしょうか。 私はどこのテーブルからcount(id)を選択しますか? または、DBからアプリケーションに単一のテーブルを取得して、アプリレベルで重労働に対処する方が良いですか? –

関連する問題