1. Conceptos básicos
¿Primero entiendes las 3 preguntas básicas?
1. ¿Qué es Dune Analytics?
En pocas palabras es:
1. El equipo de Dune Analytics limpió los datos en la cadena de bloques para formar datos estructurados y los almacenó en el almacén de datos, y luego creó una herramienta que permite a las personas con algunos conceptos básicos de SQL consultar los datos de manera flexible según sus propias necesidades.
2. La plataforma también proporciona capacidades de visualización de datos y los datos encontrados se pueden convertir fácilmente en gráficos y paneles.
2. ¿Qué es un almacén de datos?
En términos humanos, significa que para las necesidades de las estadísticas de datos, algunos datos se almacenan en categorías y el soporte de almacenamiento es [tabla de datos]. Una serie de [tablas de datos] que se centran en un determinado tema o temas juntos es un almacén de datos.
Aviso:
Los datos aquí pueden ser datos de resultados (como las estadísticas diarias del volumen de operaciones de un determinado par comercial desde que Uniswap se puso en línea)
También pueden ser datos de proceso (detalles de cada registro de transacción que se ha producido en un determinado par comercial desde que Uniswap se puso en línea: quién lo inició, intercambio de A por B, tiempo de transacción, tx_hash, número de transacciones...)
3. ¿Qué es SQL?
Supongamos que quieres comer Crispy Rice Chocolate, pero no puedes salir en ese momento. Llamas a un chico de los recados y le dices: Necesito una caja de chocolates, y su marca es Crispy Rice. Hice recados y fui al supermercado a comprar chocolates y entregártelos en tu casa.
Por analogía, SQL es lo que usted dijo, y Dune Analytics es un chico de los recados. Le permite hablar con el almacén de datos y transferirle los datos del almacén de datos.
2. ¿Cómo se ve la tabla de datos?
Puede pensar en una tabla como una tabla de Excel, con diferentes datos almacenados en cada tabla de Excel. Tome mi tabla más utilizada como ejemplo: erc20."ERC20_evt_Transfer" (registro de transferencia de tokens ERC20)

Los campos de la tabla son los siguientes
de: desde qué billetera se transfieren las monedas
a: A qué billetera se transfieren las monedas
valor: cuántas monedas se transfirieron
contract_address: qué moneda se transfiere (la dirección del contrato del token ERC20, generalmente puede verificar la dirección del contrato de un determinado token en CMC)
evt_tx_hash: ¿Cuál es el hash tx de esta transferencia?
evt_index: estos datos son el número de esta transacción. Puede haber varios datos en una transacción. Por ejemplo, si intercambia APE por AAVE en uniswap, se puede dividir en 2 datos APE→ETH, ETH→AAVE. .
evt_block_time: la hora en que se empaquetó la transacción
evt_block_number: la altura del bloque donde se empaqueta la transacción
3. ¿Cómo escribir SQL?
1.Estructura básica
La estructura o sintaxis más básica de SQL es
seleccione: ¿Qué campo tomar?
de: ¿De qué mesa?
donde: ¿Cuáles son las restricciones?
Por ejemplo 🌰, vea la imagen a continuación para obtener una explicación específica.
-------Línea divisoria de código-------
seleccionar
"de"
,"a"
,"valor"
de erc20."ERC20_evt_Transfer"
donde "de" = '\xb1a2b43a7433dd150bb82227ed519cd6b142d382'
y "dirección_contrato" = '\xe6ee69495b571e1042f760d7f34009164aff87a2'
-------Línea divisoria de código-------

Una explicación adicional
Con respecto a la dirección de billetera/contrato o hash tx, el almacenamiento real en la base de datos ha pasado por una capa de procesamiento: todos los [0] en [0x] han sido reemplazados por [\]
Seleccione varios campos separados por comas [inglés]. Las comas y comillas involucradas en SQL deben estar en formato inglés; de lo contrario, se informará un error.
[dónde] Si hay varias condiciones detrás, use [y] para conectar estas condiciones cuando desee obtener la intersección de múltiples condiciones, y use [o] para conectar la unión.
El "de" entre comillas es un nombre de campo en la tabla y el "de" antes del nombre de la tabla es una palabra de sintaxis SQL.
El resultado final se muestra en la siguiente figura. Solo hay 4 datos de transacción que cumplen las condiciones anteriores.

2. Función de agregación
Funciones agregadas comunes
contar()
Cuente, calcule cuántas filas de datos cumplen con los requisitos. Si necesita eliminar duplicados de acuerdo con un campo determinado, como [a], cuente (distinto "a").
suma()
Para sumar, por ejemplo, para calcular cuánto ETH Brother Sun ha transferido a Binance este año, debes usar sum() para agregarlo.
máx()
Tome el máximo, por ejemplo, para calcular cuánto ETH Brother Sun ha transferido a Binance como máximo una vez este año, debe usar max() para calcularlo.
mín()
Toma el minimo
promedio()
promedio
La función agregada es extraer todos los datos bajo sus restricciones de dónde y luego usar funciones para agregarlos.
Para comparar aquí🌰, cambiemos a contract_address aquí
-------Línea divisoria de código-------
seleccionar
"de"
,"a"
,"valor"
de erc20."ERC20_evt_Transfer"
donde "de" = '\xb1a2b43a7433dd150bb82227ed519cd6b142d382'
y "dirección_contrato" = '\x5ca9a71b1d01849c0a95490cc00559717fcf0d1d'
-------Línea divisoria de código-------
El resultado es el que se muestra a continuación:
