举个简单的例子,这里有张数据库表格,表格中有5条数据,需要解决的问题是通过task_name来打组,而取version_number最高的数据。
id | version_number | task_name |
1 | 1 | fx_task |
2 | 2 | fx_task |
3 | 3 | fx_task |
4 | 1 | lgt_task |
5 | 2 | lgt_task |
求得的新表格数据应该是这样的。
id | version_number | task_name |
3 | 3 | fx_task |
5 | 2 | lgt_task |
这里需要使用到SQL语句GROUP BY,SQL语言中有一些聚合函数(aggregate_function)比如AVG()、COUNT()、MAX()、MIN()、SUM()等等。
GROUP BY通常的语法规则如下:
SELECT column_name(s), aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name1, column_name2...;
因此想解决上面提出的问题,可以使用下面的SQL语句即可。
SELECT task_name, MAX(version_number)FROM PublishedFileGROUP BY task_name;