Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql用例语句作为变量_Mysql_Sql - Fatal编程技术网

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是正确的。