我遇到了尝试计算多个行然后在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;
但没有任何喜悦,任何建议都将得到充分的赞赏
答案 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;