在每个重复值的第一次出现时显示行。

目前我正在建立一个交易程序。我需要在信号达到下一个0或1时返回结果。

信号栏只有三个值,分别是 “0”、”1 “或””。1表示买入信号,0表示卖出信号。””只是表示要等到信号达到后再做决定。

有时一行可能会有几个0或1返回,但我只需要找到第一行,因为那将是进入或退出的时机。

所以我的表是这样的。

id  coinType  signal        date
==========================================
1     A         0      2020-04-18 05:45:05
2     A                2020-04-18 05:46:05
3     A         1      2020-04-18 05:47:05
4     A                2020-04-18 05:48:05
5     A                2020-04-18 05:49:05
6     A         0      2020-04-18 05:50:05
7     A         1      2020-04-18 05:51:05
8     A         1      2020-04-18 05:52:05
9     A                2020-04-18 05:53:05
10    A         0      2020-04-18 05:54:05

我试过下面的代码,但似乎没有返回正确的结果。

SELECT * FROM table c WHERE `coinType`='A' and `signal` NOT IN ( SELECT `signal` FROM table WHERE id = (SELECT MAX(id) FROM table WHERE `signal`!='' and id < c.id and `coinType` = c.`coinType`) ) ORDER BY id

返回的结果应该是这样的

id   coinType   signal        date
==============================================
1      A          0       2020-04-18 05:45:05
3      A          1       2020-04-18 05:47:05
6      A          0       2020-04-18 05:50:05
7      A          1       2020-04-18 05:51:05
10     A          0       2020-04-18 05:54:05

解决方案:

SELECT 
  MIN(id), 
  signal, 
  MIN(date) 
FROM 
  table 
WHERE 
  coinType = 'A'
GROUP BY
  signal
ORDER BY
  id DESC;

像这样的东西可以吗?你还可以添加 MIN(cointype) 的选择,因为您是按钱币类型过滤的,或者您可以直接将它添加到 GROUP BY 币型后的部分。

我希望我现在对问题的理解是正确的:) 这基本上会按照该币的信号类型进行分组,并会给你最小的ID和日期。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

Wordpress Permalinks - NGINX Conf (没有指定输入文件错误)

2022-4-22 19:10:00

解决方案

用componentDidUpdate()和React-APlayer库更新状态。

2022-4-22 20:00:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索