我需要从Trades
表中选择每个ticker
的最后40行。我可以用python循环它们。它可以工作,但会有太多的查询。我正在寻找一种方法来做到这一点在一个单一的查询。
下面是我的SQL查询:
SELECT ticker, count(ticker)
FROM (SELECT * from Trades WHERE ticker = '<this_will_be_replaced>' ORDER BY timestamp DESC LIMIT 40)
WHERE trade = 'buy'
GROUP BY ticker
股票代码:
| 身份证|自动收报机|
| --------------|--------------|
| 0| btcusd|
| 1|埃图什德|
行业:
| 身份证|自动收报机|数量|价格|时间戳|贸易|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 0| btcusd| 0.5|二万九千|1681901482|购买|
| 1| btcusd| 0.2|二万九千五百|1681901483|出售|
| 二|btcusd| 0.3| 29400| 1681901484|购买|
| 三|btcusd| 0.1| 29700|电话:1681901485|购买|
我尝试过使用内部连接,但它没有像我预期的那样工作。
SELECT ticker, count(ticker)
FROM (SELECT * from Trades tr INNER JOIN Tickers tk ON tk.ticker = tr.ticker ORDER BY tr.timestamp DESC LIMIT 40)
WHERE trade = 'buy'
GROUP BY ticker
1条答案
按热度按时间uz75evzq1#
使用common table expression(或CTE)和ROW_NUMBER()window function