找到最小值+最大值和关联的列

尼古拉斯·唐

因此,数据库表头是:

Date | buyPrice | sellPrice | buyVolume | sellVolume | exchange

我试图:

  1. 项目清单
  2. 按日期分组
  3. 对于每个组,找到最低购买价和与其关联的交易所
  4. 查找最大sellPrice和与其关联的交易所
  5. 查找最大(卖价)-最小(买价)之间的差异

从我正在阅读的内容中,我可以使用行还是有更好的解决方案?

(使用postgresql)

编辑:如果我们假设与以下数据进行3次交换:

|Date | buyPrice | sellPrice | buyVolume | sellVolume | exchange | |1-1-2017 | 1 | 1 | 1 | 1 | exchangeA | |1-1-2017 | 2 | 1 | 2 | 1 | exchangeB | |1-1-2017 | 3 | 1 | 3 | 1 | exchangeC |

解决方案输出应为

| Date | buyPrice | buyVolume | buyExchange | sellPrice | sellVolume | sellExchange | | 1-1-2017 | 1 | 1 | exchangeA | 3 | 1 | exchangeC

尼古拉斯·唐

好的,由于其他一些问题,我设法做到了。

SELECT t1.createdAt, t1.sellPrice, t1.exchangeId AS sellExchange, t2.buyPrice, t2.exchangeId AS buyExchange, t1.sellPrice - t2.buyPrice AS spread, 
       CASE 
         WHEN t1.sellVolume < t2.buyVolume THEN t1.sellVolume
         ELSE t2.buyVolume
       END AS minVolume
FROM 
    (SELECT a.createdAt, a.sellPrice, a.sellVolume, a.exchangeid, a.quoteId
    FROM quotes a
    INNER JOIN (
        SELECT createdAt, max(sellPrice) AS sellPrice
        FROM quotes
        GROUP BY createdAt
    ) b ON a.createdAt = b.createdAt AND a.sellPrice = b.sellPrice) 
    t1 INNER JOIN
    (SELECT a.createdAt, a.buyPrice, a.buyvolume, a.exchangeid, a.quoteId
    FROM quotes a
    INNER JOIN (
        SELECT createdAt, min(buyPrice) AS buyPrice
        FROM quotes
        GROUP BY createdAt
    ) b ON a.createdAt = b.createdAt AND a.buyPrice = b.buyPrice) 
    t2 ON t1.createdAt = t2.createdAt

将返回 createdAt | sellPrice | sellExchange | buyPrice | buyExchange | volume| spread

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫找到当地的最大值和最小值

在for循环中找到最大值/最小值

找到每列的最大值和最小值,然后找到每一行的最大值和最小值

awk:在列中找到最小值和最大值

在数据结构中找到最大值最小值和最大键值

numpy:通过关联从关联中找到最小值和最大值

在熊猫中找到班级的最小值(或最大值)

在R中找到一列的最大值和最小值以及其他两列的差

如何在单个值的许多行中找到最小值和最大值

列的最大值和最小值之间的差异

最小值和最大值

在与另一列对应的列中找到最大值和最小值

在两列中找到最小值和最大值

MySQL如何在求和一列后找到最大值和最小值

找到第3列的最小值和最大值,然后打印整行

比较字段1中每个记录的值以找到最小值和最大值AWK

如何在R的一列中的值序列内找到最大值和最小值?

在与另一列中的特定ID相关联的一列中找到最小值和最大值

如何使用 python pandas 找到 ID 1 和 5 的最小值和最大值?

按 3 列分组并根据第 4 列找到最大值/最小值?

找到最大值后,在单独的列中找到后续的最小值

如何找到与列的最小值/最大值相关联的行?

找到最小值

如何从表中找到最大值和最小值以及另一列值?

如何找到最大值和最小值

从元素列表中找到最大值/最小值

如何在java中找到最大值和最小值?(使用循环和if else)

如何找到所有數據框的最大值、最小值[不是按列和行的值]

如何在 Python 中找到二维数组的最小值和最大值