1 回答

TA貢獻1809條經驗 獲得超8個贊
問題是一些log.data值被排除在 之外SUM,因為它們不適合范圍,INT64因此SAFE_CAST(log.data AS INT64)返回NULL。作為一個例子,0x00000000000000000000000000000000000000000000000080b7978da47c78d2是大于max更大INT64的值9223372036854775807,這是0x7FFFFFFFFFFFFFFF十六進制的。
您可以改為將log.data值強制轉換為FLOAT64類型,這會產生更接近您使用 Pandas 看到的結果:
SELECT
SUM(CAST(log.data as FLOAT64)/POW(10,18))
FROM
`bigquery-public-data.ethereum_blockchain.logs` AS log
WHERE TRUE
AND log.address = '0xf53ad2c6851052a81b42133467480961b2321c09'
AND log.block_timestamp >= '2018-01-01 00:00:01'
AND log.block_timestamp <= '2018-12-01 00:00:01'
AND SUBSTR(log.topics[SAFE_OFFSET(0)], 1, 10) IN ('0x42696c68','0xcc16f5db')
這返回329681.7942642243.
添加回答
舉報