【发布时间】:2020-06-14 07:02:15
【问题描述】:
问题:
提供一份报告,显示客户的全名(名字和姓氏一起)、山寨名称、山寨的地区名称、预订日期(格式为 2017 年 12 月 15 日)、预订价格、以及该小屋的预订价格与所有小屋的平均预订价格之间的差额(以 $yy.y 格式,例如 $25.6 格式,截断到最接近的小数点后 1 位),按全名降序排列。
我的回答:
SELECT CONCAT(Customer_FName," ",Customer_LName) AS 'Name', Cottage_Name, Region_Name,
DATE_FORMAT(Booking_Date,"%D %M %Y" ) AS 'Date Booked', Booking_Price,
CASE
WHEN AVG(Booking_Price) < Booking_Price THEN Booking_Price - AVG(Booking_Price)
ELSE -1 * (AVG(Booking_Price) - Booking_Price)
END AS 'Diff From Average'
FROM Customer
JOIN Booking USING(Customer_ID)
JOIN Cottage
JOIN Region
GROUP BY Name;
所需的输出必须显示负值而不是 0
我的问题:有谁知道可以与CASE... WHEN 执行相同操作并显示负值的函数?
SQLFiddle(包含数据和所有必要的文件):http://sqlfiddle.com/#!9/8a40db/2/0
问题提示:
【问题讨论】:
标签: mysql date join average window-functions