[英]In SQL how do you multiply count()?
這是我要執行的操作的描述:查看每個活動屬性的屬性名稱,“房間數”,“最佳每日價值”和“平均房價”。(最佳每日價值假定所有房間都已滿並按其基本費率收費。)
這是我想出的方法,但是它不起作用,並給出一個錯誤:
SELECT p.property_name, 'numrooms' AS 'Number of Rooms',
'numrooms' * r.base_rate AS 'Optimal Daily Value',
AVG(r.base_rate) AS 'Average Rate'
FROM property p, room r,(SELECT COUNT(DISTINCT room_id) FROM room AS "numrooms"
GROUP BY p.property_name;
我猜了一些列名。
SELECT p.property_name,
COUNT(1) AS [Number of Rooms],
SUM(r.base_rate) AS [Optimal Daily Value],
AVG(r.base_rate) AS [Average Rate]
FROM property p
INNER JOIN room r
ON p.id = r.propertyId
GROUP BY p.property_name
ORDER BY p.property_name
列別名可能必須不同,具體取決於您的SQL品牌。
根據您提供的詳細信息,我相信類似這樣的內容可能與您實際尋找的內容很接近,但是我不確定您是否可以理解查詢所生成的數據:
SELECT
p.property_name
, numrooms.rooms AS [Number of Rooms]
, numrooms.rooms * r.base_rate AS [Optimal Daily Value]
, AVG(r.base_rate) AS [Average Rate]
FROM property p
, room r
, (SELECT COUNT(DISTINCT room_id) AS rooms FROM room GROUP BY p.property_name) numrooms
但是我的建議是發布更多有關房間和屬性表中的主鍵/外鍵的詳細信息,以便可以通過使用更有效的JOIN
代替FROM
之后枚舉表進行的笛卡爾聯接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.