记录一次比较查询,需求是比较内容是否一次比一次高,用来作为标签依据

大致问题如下 简化:

班级中有若干人,若干次考试。需要查询某人在考试时成绩越来越好(分数是每次都有增长)

思路:

1。使用group by 分组, 然后在查询内容使用 group_concat(【成绩字段】 order by 【时间或者自增长id】) 查询出每次按时间顺序考试的成绩 拼接,

2。使用group by 分组, 然后在查询内容使用 group_concat(【成绩字段】 order by 【成绩字段】) 查询出按成绩大小 排序的 内容。

join  上去。

再用 查询出来的内容比较 是否相同。如果相同。那么就说明 这个人的成绩每次都有提升。

具体sql 如下:

创建表结构:

CREATE TABLE `t_stock` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `stock_id` varchar(11) DEFAULT NULL COMMENT '股票代码',
  `stock_name` varchar(20) DEFAULT NULL COMMENT '股票名称',
  `sell_amount` double DEFAULT NULL COMMENT '主动出售统计金额',
  `buy_amount` double DEFAULT NULL COMMENT '主动购买金额',
  `unknow_amount` double DEFAULT NULL COMMENT '未知动向金额',
  `market_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '交易时间',
  `create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
  `data_amount` double DEFAULT NULL COMMENT '今日收盘价格',
  `big_sell_amount` double DEFAULT NULL COMMENT '主动出售统计大单金额',
  `big_buy_amount` double DEFAULT NULL COMMENT '主动购买大单金额',
  PRIMARY KEY (`id`),
  KEY `stock_id` (`stock_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=44248 DEFAULT CHARSET=utf8 COMMENT='记录每天某些股票的交意记录为以后提供参考';

大致查询sql:

select * from (
select GROUP_CONCAT((buy_amount+sell_amount) order by buy_amount+sell_amount) hl,stock_id , stock_name ,
SUBSTRING_INDEX(GROUP_CONCAT(data_amount order by id),',',1) from t_stock  group by stock_id
)aa
join
(
select GROUP_CONCAT((buy_amount+sell_amount) order by id) idhl,stock_id , stock_name ,
SUBSTRING_INDEX(GROUP_CONCAT(data_amount order by id),',',1) from t_stock  group by stock_id
)bb
on aa.stock_id = bb.stock_id
where  aa.hl=bb.idhl

应该还能优化,暂时先想到这种,记录一下

最新文章

  1. 读书笔记--SQL必知必会11--使用子查询
  2. Longest Substring Without Repeating Characters
  3. sqlite简单使用
  4. ASP.NET MVC系列:添加控制器
  5. JavaWeb学习总结-05 Servlet 学习和使用(01)
  6. Cento 安装配置FastFDS
  7. js正则表达式的验证示例
  8. ireport 在 AIX Linux websphere下的字体安装
  9. java短路问题
  10. js模块化开发——前端模块化
  11. Java中泛型数组的使用
  12. php的定界符<<<eof的问题
  13. Workbench利用Python驱动DM执行Js进行建模
  14. HDU 2175 汉诺塔IX (递推)
  15. Standard C 之 math.h和float.h
  16. dsdsd
  17. 在 Asp.NET MVC 中使用 SignalR 实现推送功能 [转]
  18. Vue如何引入远程JS文件
  19. Python:模块学习——os模块
  20. a6

热门文章

  1. C#,Winform软件防破译-源代码加密简单方法之.NET REACTOR(一)
  2. 浅谈Python中的if,可能有你不知道的
  3. 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
  4. CentOS7登录到控制台后无网络
  5. 【开发宝典】Java并发系列教程(四)
  6. .NET Core 项目启动时运行定时任务
  7. jquery(一:认识jquery、选择器)
  8. 什么是Http? http和https的区别
  9. JR文摘_TNFi和阿贝西普降低RA患者CVD风险
  10. js中的for循环,循环次数会多出一次。当循环到最后一个的时候,循环还会继续,并且此时i就变成remove?