目录导读

- 为什么你需要掌握Dune Analytics?——从链上数据看币安生态
- 从零起步:Dune Analytics界面与基础查询逻辑
- 进阶核心:编写高效SQL查询的5个技巧
- 实战案例:查询币安智能链(BSC)上的交易数据
- 常见问题与问答:解决你的SQL写作痛点
- 优化你的查询:让数据分析更快更准
为什么你需要掌握Dune Analytics?——从链上数据看币安生态
如果你在币安上交易或参与DeFi项目,你一定想知道:哪些代币在币安智能链上最活跃?大户们在链上做了什么操作? 这些答案藏在链上数据里。
Dune Analytics是目前最强大的链上数据分析工具之一,它让普通用户也能像数据分析师一样,通过编写SQL查询,直接从区块链数据库中提取信息,无论你是追踪币安上的热门交易对,还是研究某个代币的持有者分布,Dune都能给你答案。
但很多用户卡在了入门阶段:界面看不懂、SQL不会写、查询跑不出数据,这篇教程就是为你准备的——从基础到进阶,配合实战案例,让你真正掌握Dune Analytics。
小提示:如果你想快速上手,可以先访问 币安官方数据分析工具推荐页面 了解基础概念,再回来继续学SQL。
从零起步:Dune Analytics界面与基础查询逻辑
打开Dune Analytics后,你会看到三个核心区域:
- 查询编辑器:写SQL的地方,支持多行代码
- 数据表浏览器:列出了所有可用的区块链数据表,比如
bnb.transactions、ethereum.transactions - 结果展示区:查询跑完后,数据以表格或图表形式呈现
基础查询逻辑:
每个查询都围绕“表”展开,比如你想看币安智能链上的最近100笔交易,代码是这样的:
SELECT * FROM bnb.transactions ORDER BY block_time DESC LIMIT 100
但注意:Dune的数据表名有固定格式,比如币安智能链上的交易数据在bnb.transactions表里,代币转账在bnb.token_transfers表里。新手最容易犯的错误就是表名拼错,导致查询报错。
进阶核心:编写高效SQL查询的5个技巧
技巧1:用WHERE精准缩小范围
别一上来就SELECT *,那样会拉取海量数据,查询慢得让你崩溃,学会用时间、地址、合约名等条件过滤:
SELECT block_time, tx_hash, amount FROM bnb.transactions WHERE block_time >= CURRENT_DATE - INTERVAL '7' DAY AND from_address = '0x你的钱包地址'
技巧2:善用JOIN关联多张表
比如你想查某个代币在币安上的转账记录和发送方信息,需要关联bnb.token_transfers和bnb.transactions:
SELECT t.block_time, t.tx_hash, tt.symbol, tt.amount FROM bnb.transactions t JOIN bnb.token_transfers tt ON t.tx_hash = tt.tx_hash WHERE tt.symbol = 'BNB'
技巧3:利用GROUP BY做聚合统计
想知道每天币安智能链上有多少笔交易?用这个:
SELECT DATE(block_time) AS day, COUNT(*) AS tx_count FROM bnb.transactions GROUP BY day ORDER BY day DESC
技巧4:善用DECIMAL处理精度
链上金额通常以Wei为单位,直接看是天文数字,记得除以10^18转为整数:
SELECT amount / POWER(10,18) AS amount_eth FROM bnb.token_transfers
技巧5:用子查询拆分复杂需求
比如先找出某个钱包的频繁交互地址,再查这些地址的交易记录——这一步需要子查询。
如果你在币安上做交易分析,建议先花点时间熟悉 币安相关链上数据查询模板,许多社区大佬已经分享了现成的SQL,拿过来改改参数就能用。
实战案例:查询币安智能链(BSC)上的交易数据
场景:我想知道过去7天,币安智能链上交易量最大的10个代币分别是什么,以及它们的交易次数。
步骤分解:
- 打开Dune,选择“Binance”数据源
- 编写查询,核心逻辑:从
bnb.token_transfers表聚合数据 - 按交易次数降序排列,取前10
完整SQL代码:
SELECT
symbol,
COUNT(*) AS transfer_count
FROM bnb.token_transfers
WHERE block_time >= CURRENT_DATE - INTERVAL '7' DAY
GROUP BY symbol
ORDER BY transfer_count DESC
LIMIT 10
结果分析:
你会发现排名靠前的多是稳定币如USDT、BUSD,以及一些热门Meme币,如果你发现某个代币突然冲进前十,可能意味着有庄家活动或新项目上线——这是链上数据带来的交易信号。
延伸思考:
如果你再结合bnb.transactions表,还能分析出这些代币交易的平均Gas费、交易发起的钱包地址数等更深层信息。
常见问题与问答:解决你的SQL写作痛点
Q:我写的SQL一直报错“Table not found”,怎么办?
A:先检查表名是否正确,Dune的表名格式通常是区块链名.表名,比如币安智能链是bnb,以太坊是ethereum,可以在数据表浏览器里搜索关键词,比如输入“token_transfers”找到正确表名。
Q:查询跑了几分钟,一直转圈,怎么办?
A:一是数据量太大,添加更严格的时间或地址过滤;二是避免SELECT *,只选需要的字段,如果还慢,考虑用Dune的“查询缓存”功能,查看已跑过的结果。
Q:我想查币安上的某个特定代币,但不知道合约地址?
A:在Dune数据表里搜索“token”相关的表,比如bnb.tokens,里面包含了所有已部署代币的合约地址和符号。
Q:查询结果里的金额数字太大,怎么换算成常见单位?
A:链上的金额默认是Wei(以太坊)或最小区间单位,除以10的对应次幂即可,比如除以10^18转为ETH或BNB的单位。
如果你对SQL完全陌生,可以先去看看 币安社区中分享的基础SQL教程,那里有视频教学和代码示例,比自己硬啃快得多。
优化你的查询:让数据分析更快更准
使用索引思考
理论上,Dune会自动优化,但如果你想查询特定地址的数据,建议把地址过滤放在WHERE子句的最前面,帮助数据库快速定位。
避免不必要的ORDER BY
排序操作非常消耗资源,如果你不需要排序,尽量省略。
利用Dune的“图表”功能
写查询时,直接点击“图表”按钮,Dune会自动生成折线图或柱状图,比看表格直观得多。
定期清理你的查询历史
Dune免费版有查询次数限制,把常用的查询保存为“收藏”,需要时直接运行,避免重复编写。
最后的话
链上分析不是程序员专属技能,只要你掌握基础的SQL逻辑,就能像使用Excel一样从Dune中挖掘币安生态里的宝藏。下次当你看到某个代币突然暴涨时,别急着追高——先打开Dune,跑一个查询,看看大户的链上动作,或许能帮你躲过一波回调。
数据不会说谎,但你需要学会如何看懂它。
标签: Dune Analytics SQL查询