需求场景:读取期货5分钟数据表,判断每日各个品种的主次合约 解决方案:只要根据每日第一个5分钟线的持仓量排序就能获取当日主次合约 代码实现:根据日期(精确到日)、品种进行分组,在每个分组中按照日期(精确到分钟)、持仓量排序,取排序前面2行的合约则为主次合约。 原始数据 实现 新增需要的列 首先简单增 ...
分类:
数据库 时间:
2021-05-24 05:20:38
阅读次数:
0
在网上看到一位网友写的实现代码如下: select * from student where s_id in ( select s_id from score t1 group by s_id having group_concat(c_id) = ( select group_concat(c_i ...
分类:
编程语言 时间:
2020-05-21 19:57:14
阅读次数:
172
表如下: CREATE TABLE `asset_change_log` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `asset_id` int(11) unsigned NOT NULL COMMENT '资产ID' ...
分类:
数据库 时间:
2019-11-12 13:03:52
阅读次数:
91
在一个月黑风高的夜晚,自己无聊学习的SQL的时候,练习,突发奇想的想实现一个功能查询,一张成绩表有如下字段,班级ID,英语成绩,数据成绩,语文成绩如下图 实现 查询出 每个班级英语成绩最高的前两名的记录。 看起来不难的业务,做起来才知道还挺麻烦的,说白了其实就是实现分组后的组内排序,一般不思考的话我 ...
分类:
数据库 时间:
2019-01-06 10:51:41
阅读次数:
529
MapReduce的自制Writable分组输出及组内排序 ...
分类:
编程语言 时间:
2018-06-03 21:19:54
阅读次数:
121
不废话,直接上代码。 1.获取5个数中的最大数: int[] score = {66,77,88,65,88}; int max = score[0]; for(int i=0;i<score.length-1;i++){ if(max<score[i+1]){ max = score[i+1]; ...
分类:
编程语言 时间:
2018-05-05 11:19:29
阅读次数:
132
我们都知道在sql中有一类函数叫做聚合函数,例如sum()、avg()、max()等等, 这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的. 但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数. hive中的窗口函数和sql中的窗口 ...
分类:
其他好文 时间:
2018-03-29 21:22:40
阅读次数:
166
http://blog.csdn.net/shellching/article/details/8292338 所有SSD配置的最近生效费率查询 select * from billing_rates_tbl as tt wheresub_res_id like "%ssd::%"and res_t ...
分类:
数据库 时间:
2017-08-31 16:13:08
阅读次数:
222
最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题。问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例 测试用例 --建表 create table testorder (id int not null, no int not null, nam ...
分类:
数据库 时间:
2017-08-30 15:48:35
阅读次数:
219
SELECTp_type,p_name,p_view,row_numfrom( SELECTp_type,p_name,p_view,IF(@bak=p_type,@rownum:=@rownum+1,@rownum:=1)asrow_num,@bak:=p_type FROM (SELECTp_type,p_name,p_viewfromproducts orderbyp_type,p_viewdesc)a,(SELECT@rownum:=0,@bak:=‘‘)b )cWHEREc.row_num<..
分类:
编程语言 时间:
2017-06-13 14:38:27
阅读次数:
130