WHERE
id IN (
SELECT SUBSTRING_INDEX(group_concat( id ORDER BY `storage_time` DESC ), ',', 1 )
FROM csrc_approved_products_weekly
GROUP BY application_matters
1.按时间从大到小顺序取出唯一键id列表
SELECT
group_concat( id ORDER BY `storage_time` DESC )
csrc_approved_products_weekly
GROUP BY
application_matters
2.再用SUBSTRING_INDEX函数取出第一个(也就是时间最大的数据id)
SELECT
SUBSTRING_INDEX( group_concat( id ORDER BY `storage_time` DESC ), ',', 1 )
csrc_approved_products_weekly
GROUP BY
application_matters
3.再根据 id查询数据
SELECT
csrc_approved_products_weekly
WHERE
id IN (
SELECT SUBSTRING_INDEX( group_concat( id ORDER BY `storage_time` DESC ), ',', 1 )
FROM csrc_approved_products_weekly
GROUP BY application_matters
在SQL中使用GROUP BY来对SELECT的结果进行数据分组,在具体使用GROUP BY之前需要知道一些重要的规定。
1、GROUP BY子句可以包含任意数目的列。也就是说可以在组里再分组,为数据分组提供更细致的控制。
2、如果在GROUP BY子句中指定多个分组,数据将在最后指定的分组上汇总。
3、GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用了表达式,则必须在GROUP BY子句中指定相同的表达式。不能使用别名。
4、出了聚集计算语句外,SELECT语句中的每一列都必须在GROUP BY子句中给出。
–按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 */ –创建表并插入数据: 代码如下: create table tb(name varchar(10),val int,memo varchar(20)) insert into tb values(‘a’, 2, ‘a2(a的第二个值)’) insert into tb
Oracle中group by用法
在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息。
使用having子句 限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。
在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数 select max(sal),job emp group by job; (注意
在进行数据分析、数据建模时,我们首先要做的就是对数据进行处理,提取我们需要的信息。下面为大家介绍一些groupby的用法,以便能够更加方便地进行数据处理。我们往往在使用groupby进行信息提取时,往往是求分组后样本的一些统计量(max、min,var等)。如果现在我们希望取一下分组后样本的第二条记录,倒数第三条记录,这个该如何操作呢?我们可以通过first、last来提取分组后第一条和最后一条样...
import pandas as pd
df = pd.DataFrame({'class':['a','a','b','b','a','a','b','c','c'],'score':[3,5,6,7,8,9,10,11,14]})
sql取group by 分组后的组内最新(最大,最…)的一条数数据
最近一个有个需求是 , 取分组后的组内最新的一条数据, 正常来说写法如下
select a.* from
select cluesTaracking_id,cluesId,trackingTime,fail_why from cluestracking
order by trackingTime desc
group by a.cluesId
但是查询结果却是取得id最小的一条数据
不分组查询结果
分组后的查询结
在进行数据分析、数据建模时,我们首先要做的就是对数据进行处理,提取我们需要的信息。下面为大家介绍一些groupby的用法,以便能够更加方便地进行数据处理。
我们往往在使用groupby进行信息提取时,往往是求分组后样本的一些统计量(max、min,var等)。如果现在我们希望取一下分组后样本的第二条记录,倒数第三条记录,这个该如何操作呢?我们可以通过first、last来提取分组后第一条和最后一...
写这篇博文是为了帮助遇到同样问题的人,希望对你有用~问题:求怎么查出同一课程id中时间最大的记录?(如下图所示)1、刚开始想通过group by 分组课程id, 然后获取最大值,如下:SELECT MAX(l.learn_time)
FROM learn l
where l.user_id = '14201109'
GROUP BY l.course_id查出来结果如下:但是我想要查出来所有的字...