mysql - 按一个字段分组,然后按另一字段对结果分组

标签 mysql sql

我有一个按所需列进行分组的查询,以便获得所需的结果,然后我需要返回应通过按另一个字段对先前结果进行分组来完成的结果。 所以基本上我有一个调查表,

 sql = SELECT * FROM Survey S 
       WHERE S.UserId = 79 
       Group By S.SurveyNumber 
       Having SUM (S.Counter) <> 0 ORDER BY S.SubmittedDate DESC 

这将返回按编号分组的调查,然后我需要按调查名称对结果进行分组,并返回该调查名称的上次提交的调查 (Max(subscribedDate). 我可以使用一个查询来实现这一目标吗?如果我有

 GroupBy S.SurveyNumber, S.SurveyName 

然后它会尝试查找两列都相同。 我该怎么做?

最佳答案

我认为它有效:

SELECT 
    S2.SurveyName
    ,SUM(S2.Count) as SurveyCount

FROM ( 
    select 
        SUM(S.SurveyNumber) as Count
        ,S.SurveyName 
    FROM Survey S 
    where S.SurveyNumber <> 0 
    Group By S.SurveyNumber,S.SurveyName 
) as S2

Group By S2.SurveyName

关于mysql - 按一个字段分组,然后按另一字段对结果分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49239995/

相关文章:

mysql - Xampp 控制面板 mysql 无法启动

MySQL 排序顺序 - 排序规则?

mysql - 如何对另一个表中没有匹配条目的行进行求和?

mysql date_format 无法解析 20-may-2013

php - 尝试以 JSON 格式从 2 个表返回数据

sql - 使用增量主键sql插入多行

php - MySQL:获取前一条记录的ID

mysql - 我如何通过 sql 和 group by keywords 获取组计数?

SQL查询从一个表中返回另一个表中不存在的行

php - MySQL 查询未获取尚未添加图像的产品的 prod_id。