mysql用例语句作为变量
我有一个很大的疑问:mysql用例语句作为变量,mysql,sql,Mysql,Sql,我有一个很大的疑问: SELECT DATE(added_on) 'Week Of', COUNT(*) 'No. Updates', (CASE WHEN COUNT(*) <= 500 THEN 6.75 WHEN COUNT(*) <= 750 THEN 6.30 WHEN COUNT(*) <= 1000 THEN 6.00 WHEN COUNT(*) <= 1250 THEN 5.50 ELSE 4.60
SELECT
DATE(added_on) 'Week Of',
COUNT(*) 'No. Updates',
(CASE WHEN COUNT(*) <= 500 THEN 6.75 WHEN COUNT(*) <= 750
THEN 6.30 WHEN COUNT(*) <= 1000 THEN 6.00 WHEN COUNT(*) <= 1250
THEN 5.50 ELSE 4.60 END
) Rate
Rate * COUNT(*) // HOW TO DO THIS??
FROM
Fox_title
GROUP BY
WEEK(added_on)
ORDER BY
added_on
选择
日期(添加于“本周”),
计数(*)'编号更新',
(计数(*)时的大小写重复大小写
或使用子查询:
select t.*, t.Rate * `No. Updates`
from (SELECT DATE(min(added_on)) as `Week Of`, COUNT(*) as `No. Updates`,
(CASE WHEN COUNT(*) <= 500 THEN 6.75
WHEN COUNT(*) <= 750 THEN 6.30
WHEN COUNT(*) <= 1000 THEN 6.00
WHEN COUNT(*) <= 1250 THEN 5.50
ELSE 4.60
END) as Rate
FROM Fox_title
GROUP BY WEEK(added_on)
) t
ORDER BY `Week Of`;
选择t.*,t.Rate*`No.Updates`
从(选择日期(最小值(已添加))作为“周”,计数(*)作为“编号更新”,
(计数(*)时的大小写)出于好奇,两次使用CASE语句不会比使用子查询提供更好的性能吗?两次使用CASE
语句会有更好的性能。但是,由于这是一个group by
查询,MySQL已经多次写入和读取数据以进行聚合子查询的实体化对性能的影响可能很小,但一般来说,MySQL是正确的。