Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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_Aginity - Fatal编程技术网

Mysql 在聚合函数错误中分组或使用

Mysql 在聚合函数错误中分组或使用,mysql,sql,aginity,Mysql,Sql,Aginity,我想在查询中按自定义驱动程序分组,因为我获得了超过130万个结果,我只需要按商店按自定义驱动程序查看当月的结果 查询正在返回给我 我想要这样的东西 我已尝试使用Distinct和Group By,但我不断遇到错误: Attribute A.STORE_NUM must be GROUPed or used in an aggregate function 我该怎么做?我一直在使用的代码是: SELECT * FROM( SELECT SE.STORE_NUM, DM.MONTH_NAME_

我想在查询中按自定义驱动程序分组,因为我获得了超过130万个结果,我只需要按商店按自定义驱动程序查看当月的结果

查询正在返回给我

我想要这样的东西

我已尝试使用Distinct和Group By,但我不断遇到错误:

Attribute A.STORE_NUM must be GROUPed or used in an aggregate function
我该怎么做?我一直在使用的代码是:

SELECT *
FROM(
SELECT
SE.STORE_NUM,
DM.MONTH_NAME_445 AS MO_445,
--DM.WEEK_START_DT_MON AS WK_BEGIN_MONDAY,
--SE.METRIC_DATE,
substring(SE.ROLLUP_NAME, 39, 20) as CUSTOM_DRIVER,
SE.DT_IMPORTED,
SE.METRIC_VALUE
FROM DNA_PUBLIC.ADMIN.SCHEDULE_EFFECTIVENESS SE
       JOIN DNA_PUBLIC.ADMIN.DAY_MAP DM ON SE.METRIC_DATE = DM.DATE_DT
       JOIN (
             SELECT DISTINCT
                METRIC_DATE,
                MAX(DATE(DT_IMPORTED)) AS MAX_DT
       FROM   DNA_PUBLIC.ADMIN.SCHEDULE_EFFECTIVENESS
       GROUP BY 1
       ) MX ON SE.METRIC_DATE = MX.METRIC_DATE
WHERE METRIC_NAME = 'Coverage Effectiveness'
AND SE.ROLLUP_NAME LIKE 'O%'
AND SE.METRIC_DATE between '07/27/2020' and '11/11/2020'
AND CAST(SE.DT_IMPORTED AS DATE) = MAX_DT
--AND CUSTOM_DRIVER = 'Truck/Truck'
AND SE.INDICATOR_NAME = 'Required'
--and STORE_NUM = 1
) AS A
Order by STORE_NUM

解决方法是选择值,并按所选变量的顺序分组。感谢所有的输入

SELECT
                STORE_NUM,
                MO_445,
                
                CUSTOM_DRIVER,
                
                SUM(METRIC_VALUE) as Tot_Hrs
FROM(
SELECT
SE.STORE_NUM,
DM.MONTH_NAME_445 AS MO_445,
DM.WEEK_START_DT_MON AS WK_BEGIN_MONDAY,
SE.METRIC_DATE,
substring(SE.ROLLUP_NAME, 39, 20) as CUSTOM_DRIVER,
SE.DT_IMPORTED,
SE.METRIC_VALUE
FROM DNA_PUBLIC.ADMIN.SCHEDULE_EFFECTIVENESS SE
       JOIN DNA_PUBLIC.ADMIN.DAY_MAP DM ON SE.METRIC_DATE = DM.DATE_DT
       JOIN (
             SELECT DISTINCT
                METRIC_DATE,
                MAX(DATE(DT_IMPORTED)) AS MAX_DT
       FROM   DNA_PUBLIC.ADMIN.SCHEDULE_EFFECTIVENESS
       GROUP BY 1
       ) MX ON SE.METRIC_DATE = MX.METRIC_DATE
WHERE METRIC_NAME = 'Coverage Effectiveness'
AND SE.ROLLUP_NAME LIKE 'O%'
AND SE.METRIC_DATE between '07/27/2020' and '11/11/2020'
AND CAST(SE.DT_IMPORTED AS DATE) = MAX_DT
--AND CUSTOM_DRIVER = 'Truck/Truck'
AND SE.INDICATOR_NAME = 'Required'
and STORE_NUM = 1
) AS A
group by 1,2,3
Order by STORE_NUM

还有一个
groupby
DISTINCT
通常意味着
DISTINCT
是多余的,或者您的
groupby
子句是错误的。另外,强烈建议您不要在
ORDER BY
/
GROUP BY
子句中使用序号位置,并正确定义列。我只是单独尝试了一下,我认为这两个是多余的。