2012-02-22 15 views
1

いくつかの行を数えてSQLでグループ化しようとすると問題が発生します。SQLとグループ化とカウントの問題

以下のSELECTクエリを使用してテーブルを作成しました。

SELECT ward.ward_no, bed_no 
FROM ward, bed 
WHERE ward.ward_no = bed.ward_no 

。私がやろうとしています何

ward_no  bed_no 

w1   1. 
w1   2. 
w1   3.  
w1   4.  
w2   5.  
w2   6.  
w2   7. 
w3   8.  
w3   9.  
w3   10. 
w4   11. 

は、それがすなわちW1とどのように多くのフィールドを示すフィールドがそれである各病棟を示していないテーブルを作成することです。

例えば、

w1 3. 
w2 3. 
w3 3 

私はそう...

SELECT ward.ward_no, bed_no 
FROM ward, bed 
WHERE ward.ward_no = bed.ward_no 
AND COUNT (bed_no) AS beds_in_ward 
GROUP BY ward_no; 

などの分野BY COUNT & GROUPを試してみましたが、無喜びで、何かアドバイスが完全に

+4

は理解していない

SELECT w.ward_no, count(bed_no) FROM ward w inner join bed b on b.ward_no = w.ward_no GROUP BY w.ward_no; 
ところ、ご希望の結果から来る。あなたのサンプルデータから '(w1,4)、(w2,3)、(w3,3)、(w4,1)'であるべきではありませんか? –

+1

@Andrew Rose、これは2度だけ聞いたことがありますか? –

+1

[SQLの行数をカウントしてグループ化する際の問題点](http://stackoverflow.com/questions/9397851/problems-with-counting-a-number-of-rows-in-sql-and) -grouping-them) –

答えて

4

をいただければ幸いあなたは間違ったであなたのCOUNT()を持っていますplace

SELECT ward.ward_no, COUNT (bed_no) AS beds_in_ward 
FROM ward 
INNER JOIN bed 
ON ward.ward_no = bed.ward_no 
GROUP BY ward_no; 

また、を使用するようにクエリを更新しましたテーブル間に','の代わりにと入力します。

+2

+1明示的な 'JOIN'の場合 –

+0

初期の乱雑なメッセージをお詫び申し上げます。 –

+0

@AndrewRoseはうれしいです。 – Taryn

0
SELECT 
    ward.ward_no, count(*) as no_of_beds 
FROM 
    ward, bed 
WHERE 
    ward.ward_no = bed.ward_no 
GROUP BY 
    ward_no; 
+0

返事をお寄せいただきありがとうございました初期の乱雑なメッセージを申し訳ありません。初めての質問です。もう一度ありがとうございます。 –

0
SELECT ward.ward_no, COUNT (bed_no) AS beds_in_ward 
FROM ward, bed 
WHERE ward.ward_no = bed.ward_no 
GROUP BY ward_no; 
+0

返事をお寄せいただきありがとうございました初期の乱雑なメッセージをお詫び申し上げます。質問をするのは初めてのことです。ありがとうございました。 –

0

あなたがここで何をしたいのか、この

SELECT ward.ward_no, count(bed_no) 
FROM ward, bed 
WHERE ward.ward_no = bed.ward_no 
GROUP BY ward.ward_no 
+0

返事ありがとうございました初期の乱雑なメッセージを申し訳ありません。初めての質問です。もう一度ありがとうございます。 –

0

本当にわからないを試してみて、私はそれがこれです推測:

+0

返事をお寄せいただきありがとうございました初期の乱雑なメッセージを申し訳ありません。初めての質問です。もう一度ありがとうございます。 –