【问题标题】:BigQuery/ Ethereum dataset - how to write the codeBigQuery/以太坊数据集 - 如何编写代码
【发布时间】:2019-04-08 04:30:29
【问题描述】:

对于以太坊数据集,如果我知道特定合约的上个月交易,任何人都可以告诉我应该如何在 BigQuery 中编写代码? 例如,如果我知道合约地址“0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3”在上个月进行了多少笔交易 他的一个 每次我尝试分析此地址时,它都会返回零。例如

SELECT
  from_address,
  to_address,
  value,
  transaction_hash
FROM
  `bigquery-public-data.crypto_ethereum.token_transfers` AS token_trs
JOIN
  `bigquery-public-data.crypto_ethereum.contracts` AS contracts
ON
  (contracts.address = token_trs.token_address)
WHERE
  contracts.address = ' 0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3 '

请帮帮我!

【问题讨论】:

  • 到目前为止你尝试过什么?请编辑您的问题以显示您遇到问题的代码的Minimal, Complete, and Verifiable example,然后我们可以尝试帮助解决具体问题。你也可以阅读How to Ask
  • 好的,我使用示例查询进行了编辑。但是每次我尝试分析该合约地址时,它都会返回零。我做错了什么?

标签: transactions google-bigquery ethereum smartcontracts


【解决方案1】:

您只是简单地获取了仅存在于一个表中而不存在于另一个表中的地址 - 因此 JOIN 将其从结果中排除

如果您感兴趣的地址在一个(第一个)表中但不在另一个(第二个)表中,您可以使用 LEFT JOIN 而不是 JOIN

如下例

#standardSQL
SELECT
  from_address,
  to_address,
  value,
  transaction_hash
FROM
  `bigquery-public-data.crypto_ethereum.token_transfers` AS token_trs
LEfT JOIN
  `bigquery-public-data.crypto_ethereum.contracts` AS contracts
ON
  (contracts.address = token_trs.token_address)
WHERE
  token_trs.token_address = '0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3'   

如果您出于某种原因需要 JOIN 工作 - 首先运行下面的查询以获取两个表中都存在的地址

#standardSQL
SELECT contracts.address
FROM `bigquery-public-data.crypto_ethereum.token_transfers` AS token_trs
JOIN `bigquery-public-data.crypto_ethereum.contracts` AS contracts
ON contracts.address = token_trs.token_address
LIMIT 10   

从结果中获取任何地址并使用它运行您的原始查询

例如:

#standardSQL
SELECT
  from_address,
  to_address,
  value,
  transaction_hash
FROM
  `bigquery-public-data.crypto_ethereum.token_transfers` AS token_trs
JOIN
  `bigquery-public-data.crypto_ethereum.contracts` AS contracts
ON
  (contracts.address = token_trs.token_address)
WHERE
  contracts.address = '0x298683bd77f17bca4f3fb37b5bf02f82ee81d3ef'

注意:我看到您的地址值中有多余的空格 - 很可能是复制粘贴问题,但想提一下

【讨论】:

  • 天哪,非常感谢!!你让我开心,谢谢!!
猜你喜欢
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
  • 2018-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
  • 2020-11-01
相关资源
最近更新 更多