SQL和分组&算上问题

时间:2012-02-22 16:05:07

标签: 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

我已经尝试过COUNT& GROUP BY字段如此...

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;

但没有任何喜悦,任何建议都将得到充分的赞赏

5 个答案:

答案 0 :(得分:4)

您的COUNT()位置错误

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;

我还更新了查询,使用JOIN代替表格之间的','

答案 1 :(得分:0)

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

答案 2 :(得分: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;

答案 3 :(得分:0)

试试这个

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

答案 4 :(得分:0)

不确定你想在这做什么,但我猜是这样的:

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;