但是这里我需要先排序之后在进行分组怎么办
时间: 2023-12-23 09:06:31 浏览: 67
排序后分组
如果需要先对数据进行排序,然后再进行分组,可以将排序后的结果作为子查询,再对子查询的结果进行分组和限制。例如:
```
SELECT val, `year`, `month`, t2.keyword, CONCAT(t2.`name`,'-',t2.parameter_units) AS parameter_name, t2.parameter_key
FROM (
SELECT val, `year`, `month`, parameter_key, data_address
FROM migu_algorithm_data
WHERE data_address LIKE CONCAT('%','渝北区','%')
ORDER BY `year` DESC, `month` DESC
) AS t1
LEFT JOIN migu_algorithm_parameter AS t2 ON t2.parameter_key = t1.parameter_key AND t2.keyword IS NOT NULL
GROUP BY t2.parameter_key
ORDER BY `year` DESC, `month` DESC
LIMIT 3;
```
这里先对 migu_algorithm_data 表进行排序,并筛选出 data_address 包含 "渝北区" 的数据,然后再与 migu_algorithm_parameter 表进行关联,并限制 keyword 不为空。最后对关联后的结果进行分组,并按照 `year` 和 `month` 字段进行降序排序。最终结果中只返回前三条数据。
阅读全文