2012-02-22 82 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 

我已经试过了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; 

,但没有快乐,任何意见,将充分认识

+4

不明白的地方您想要的结果来自。你的样本数据不应该是'(w1,4),(w2,3),(w3,3),(w4,1)'吗? – 2012-02-22 16:09:56

+1

@安德鲁罗斯,你刚刚问了两次吗? – 2012-02-22 16:13:47

+1

[计数SQL中的行数并将它们分组的问题]的可能重复(http://stackoverflow.com/questions/9397851/problems-with-counting-a-number-of-rows-in-sql-and -grouping-them) – 2012-02-22 16:15:20

回答

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而不是您的表格之间的','

+2

+1对于明确的'JOIN' – 2012-02-22 16:11:28

+0

感谢回复抱歉的最初混乱的消息,这是我第一次问一个问题。 – 2012-02-22 16:41:44

+0

@AndrewRose很高兴它的工作。 – Taryn 2012-02-22 16:53:25

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

感谢回复抱歉的最初混乱的消息,这是我第一次问一个问题 - 再次感谢。 – 2012-02-22 16:42:54

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

感谢回复抱歉的最初混乱的消息,这是我第一次问一个问题 - 再次感谢。 – 2012-02-22 16:42:32

0

试试这个

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

感谢回复抱歉的最初混乱的消息,这是我第一次问一个问题 - 再次感谢。 – 2012-02-22 16:42:41

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; 
+0

感谢您对于最初的混乱消息感到抱歉,这是我第一次问一个问题 - 再次感谢。 – 2012-02-22 16:43:02