Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 在when-case中使用sum函数_Mysql - Fatal编程技术网

Mysql 在when-case中使用sum函数

Mysql 在when-case中使用sum函数,mysql,Mysql,如何在每种情况下不计算一个值,如何计算一次并在每种情况下使用 将计数移动到子查询,并将大小写移动到外部,如下图所示: SELECT '2017-05-30' AS `short_date`, 'Stats' AS `group`, 'Active ' AS `subgroup`, '' AS `row`, CASE WHEN COUNT(DISTINCT(guild_name)) >= 1 AND COUNT(DIST

如何在每种情况下不计算一个值,如何计算一次并在每种情况下使用

将计数移动到子查询,并将大小写移动到外部,如下图所示:

SELECT  '2017-05-30' AS `short_date`,
        'Stats' AS `group`,
        'Active ' AS `subgroup`,
         '' AS `row`,
         CASE
WHEN COUNT(DISTINCT(guild_name)) >= 1 AND  COUNT(DISTINCT(guild_name)) <= 5   THEN '1 - 5 ' 
WHEN COUNT(DISTINCT(guild_name)) >= 6 AND COUNT(DISTINCT(guild_name)) <= 10  THEN '6 - 10 '
WHEN COUNT(DISTINCT(guild_name)) >= 11 AND COUNT(DISTINCT(guild_name)) <= 15 THEN '11 - 15 '
WHEN COUNT(DISTINCT(guild_name)) >= 16 AND COUNT(DISTINCT(guild_name)) <= 20 THEN '16 - 20 '
WHEN COUNT(DISTINCT(guild_name)) >= 21 AND COUNT(DISTINCT(guild_name)) <= 25 THEN '21 - 25 '
WHEN COUNT(DISTINCT(guild_name)) >= 30 THEN '> 30' END AS `value`
FROM  table
WHERE guild_name !=0
GROUP BY
                `short_date`,
                `group`,
                `subgroup`

这样,在子查询中只执行一次计数,而外部查询对结果集进行处理

将计数移动到子查询,并将大小写移动到外部,如下图所示:

SELECT  '2017-05-30' AS `short_date`,
        'Stats' AS `group`,
        'Active ' AS `subgroup`,
         '' AS `row`,
         CASE
WHEN COUNT(DISTINCT(guild_name)) >= 1 AND  COUNT(DISTINCT(guild_name)) <= 5   THEN '1 - 5 ' 
WHEN COUNT(DISTINCT(guild_name)) >= 6 AND COUNT(DISTINCT(guild_name)) <= 10  THEN '6 - 10 '
WHEN COUNT(DISTINCT(guild_name)) >= 11 AND COUNT(DISTINCT(guild_name)) <= 15 THEN '11 - 15 '
WHEN COUNT(DISTINCT(guild_name)) >= 16 AND COUNT(DISTINCT(guild_name)) <= 20 THEN '16 - 20 '
WHEN COUNT(DISTINCT(guild_name)) >= 21 AND COUNT(DISTINCT(guild_name)) <= 25 THEN '21 - 25 '
WHEN COUNT(DISTINCT(guild_name)) >= 30 THEN '> 30' END AS `value`
FROM  table
WHERE guild_name !=0
GROUP BY
                `short_date`,
                `group`,
                `subgroup`

这样,在子查询中只执行一次计数,而外部查询对结果集进行处理

您的问题看起来像是在为三个分组字段输入字符串?此查询将返回一行,其中包含不同的帮会名称。您是否打算稍后扩展此功能以针对多个短日期、组和子组运行?@ScottieB是的,我知道您的问题看起来像是在为三个分组字段输入字符串?此查询将返回一行,其中包含不同的帮会名称。您是否打算稍后扩展此功能,以针对多个短日期、组和子组运行?@ScottieB是的,我有