簡體   English   中英

在SQL中,如何將count()相乘?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM