BigQuery/以太坊数据集——如何编写代码
BigQuery/ Ethereum dataset - how to write the code
对于以太坊数据集,任何人都可以告诉我如果我知道特定合约的最后一个月的交易,我应该如何在 BigQuery 中编写?
例如,如果我想知道合约地址“0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3”在上个月进行了多少笔交易
他的
每次我尝试分析这个地址时,它 returns 为零。例如
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 '
请帮帮我!
您只是获取了仅存在于一个 table 中而不存在于另一个中的地址 - 因此 JOIN 将其从结果中排除
如果您感兴趣的地址在一个(第一个)table 但不在另一个(第二个)
中,您可以使用 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 工作 - 运行 首先在下面查询以获取 table 中存在的地址
#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'
注意:我在您的地址值中看到额外的空格 - 很可能是复制粘贴问题,但想提及
对于以太坊数据集,任何人都可以告诉我如果我知道特定合约的最后一个月的交易,我应该如何在 BigQuery 中编写? 例如,如果我想知道合约地址“0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3”在上个月进行了多少笔交易 他的 每次我尝试分析这个地址时,它 returns 为零。例如
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 '
请帮帮我!
您只是获取了仅存在于一个 table 中而不存在于另一个中的地址 - 因此 JOIN 将其从结果中排除
如果您感兴趣的地址在一个(第一个)table 但不在另一个(第二个)
中,您可以使用 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 工作 - 运行 首先在下面查询以获取 table 中存在的地址
#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'
注意:我在您的地址值中看到额外的空格 - 很可能是复制粘贴问题,但想提及