当您加载数据集后,您可以开始构建一些查询来发现您的数据告诉您什么。在本节中,您将学习如何编写查询来回答以下问题:

在上一个步骤中,您从结果中排除了 coinbase 交易。Coinbase 交易是区块中的第一笔交易,它们包括矿工因挖矿而获得的奖励。要找出最近的 coinbase 交易,您可以使用类似的 SELECT 语句,但搜索 coinbase 交易。如果您再次包含以美元计价的交易价值,您会注意到每个交易的值均为 0 美元。这是因为 coin 在 coinbase 交易中没有转移所有权。

  1. 连接到包含比特币数据集的 Timescale 数据库。

  2. 在 psql 提示符下,使用此查询来选择最近的五个 coinbase 交易

    SELECT time, hash, block_id, fee_usd FROM transactions
    WHERE is_coinbase IS TRUE
    ORDER BY time DESC
    LIMIT 5;
  3. 您获得的数据看起来有点像这样

    time | hash | block_id | fee_usd
    ------------------------+------------------------------------------------------------------+----------+---------
    2023-06-12 23:54:18+00 | 22e4610bc12d482bc49b7a1c5b27ad18df1a6f34256c16ee7e499b511e02d71e | 794111 | 0
    2023-06-12 23:53:08+00 | dde958bb96a302fd956ced32d7b98dd9860ff82d569163968ecfe29de457fedb | 794110 | 0
    2023-06-12 23:44:50+00 | 75ac1fa7febe1233ee57ca11180124c5ceb61b230cdbcbcba99aecc6a3e2a868 | 794109 | 0
    2023-06-12 23:44:14+00 | 1e941d66b92bf0384514ecb83231854246a94c86ff26270fbdd9bc396dbcdb7b | 794108 | 0
    2023-06-12 23:41:08+00 | 60ae50447254d5f4561e1c297ee8171bb999b6310d519a0d228786b36c9ffacf | 794107 | 0
    (5 rows)

此数据集包含最近五天的比特币交易。要找出数据集中最近的交易,您可以使用 SELECT 语句。在这种情况下,您要查找不是 coinbase 交易的交易,按时间降序排序,并获取前五个结果。您还想查看区块 ID 以及以美元计价的交易价值。

  1. 连接到包含比特币数据集的 Timescale 数据库。

  2. 在 psql 提示符下,使用此查询来选择最近的五个非 coinbase 交易

    SELECT time, hash, block_id, fee_usd FROM transactions
    WHERE is_coinbase IS NOT TRUE
    ORDER BY time DESC
    LIMIT 5;
  3. 您获得的数据看起来有点像这样

    time | hash | block_id | fee_usd
    ------------------------+------------------------------------------------------------------+----------+---------
    2023-06-12 23:54:18+00 | 6f709d52e9aa7b2569a7f8c40e7686026ede6190d0532220a73fdac09deff973 | 794111 | 7.614
    2023-06-12 23:54:18+00 | ece5429f4a76b1603aecbee31bf3d05f74142a260e4023316250849fe49115ae | 794111 | 9.306
    2023-06-12 23:54:18+00 | 54a196398880a7e2e38312d4285fa66b9c7129f7d14dc68c715d783322544942 | 794111 | 13.1928
    2023-06-12 23:54:18+00 | 3e83e68735af556d9385427183e8160516fafe2f30f30405711c4d64bf0778a6 | 794111 | 3.5416
    2023-06-12 23:54:18+00 | ca20d073b1082d7700b3706fe2c20bc488d2fc4a9bb006eb4449efe3c3fc6b2b | 794111 | 8.6842
    (5 rows)

在此步骤中,您使用更复杂的查询来返回最近的五个区块,并显示有关每个区块的一些附加信息,包括区块权重、每个区块中的交易数量以及以美元计价的区块总价值。

  1. 连接到包含比特币数据集的 Timescale 数据库。

  2. 在 psql 提示符下,使用此查询来选择最近的五个 coinbase 交易

    WITH recent_blocks AS (
    SELECT block_id FROM transactions
    WHERE is_coinbase IS TRUE
    ORDER BY time DESC
    LIMIT 5
    )
    SELECT
    t.block_id, count(*) AS transaction_count,
    SUM(weight) AS block_weight,
    SUM(output_total_usd) AS block_value_usd
    FROM transactions t
    INNER JOIN recent_blocks b ON b.block_id = t.block_id
    WHERE is_coinbase IS NOT TRUE
    GROUP BY t.block_id;
  3. 您获得的数据看起来有点像这样

    block_id | transaction_count | block_weight | block_value_usd
    ----------+-------------------+--------------+--------------------
    794108 | 5625 | 3991408 | 65222453.36381342
    794111 | 5039 | 3991748 | 5966031.481099684
    794109 | 6325 | 3991923 | 5406755.801599815
    794110 | 2525 | 3995553 | 177249139.6457974
    794107 | 4464 | 3991838 | 107348519.36559173
    (5 rows)

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面