Gin*_*hon 6 sql postgresql rsk
我正在查询 Covalent 数据库,以便获取有关 RSK 上的 rUSDT 代币转账交易的信息。RSK 区块链上的代币地址如下:
0xEf213441a85DF4d7acBdAe0Cf78004E1e486BB96
传输事件日志的哈希值如下:
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
这是我的查询如下:
SELECT
t.signed_at, t.fees_paid
FROM chain_rsk_mainnet.block_log_events e
INNER JOIN chain_rsk_mainnet.block_transactions t ON
e.block_id = t.block_id
AND e.tx_offset = t.tx_offset
WHERE
e.topics @> array[E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'::bytea]
AND e.topics[1] = E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
AND e.sender = E'\\xEf213441a85DF4d7acBdAe0Cf78004E1e486BB96'
ORDER BY t.signed_at DESC
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)
我期望获得最新 1000 个转账事件的交易 Gas 费用,但由于某种原因,我从未收到此查询的响应。有人能告诉我这里可能有什么问题吗?
您不应该按时间字段排序,因为t.signed_at
不是索引字段,而e.block_id
和e.tx_offset
是。两人都下单了。
替换此语句
ORDER BY t.signed_at DESC
Run Code Online (Sandbox Code Playgroud)
与这个
ORDER BY e.block_id DESC, e.tx_offset DESC
Run Code Online (Sandbox Code Playgroud)
所以最终的查询如下
SELECT
t.signed_at, t.fees_paid
FROM chain_rsk_mainnet.block_log_events e
INNER JOIN chain_rsk_mainnet.block_transactions t ON
e.block_id = t.block_id
AND e.tx_offset = t.tx_offset
WHERE
e.topics @> array[E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'::bytea]
AND e.topics[1] = E'\\xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
AND e.sender = E'\\xEf213441a85DF4d7acBdAe0Cf78004E1e486BB96'
ORDER BY e.block_id DESC, e.tx_offset DESC
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)