1. Concepte de bază
Înțelegi mai întâi cele 3 întrebări de bază?
1. Ce este Dune Analytics?
Pur și simplu, este:
1. Echipa Dune Analytics a curățat datele de pe blockchain pentru a forma date structurate și le-a stocat în depozitul de date, apoi a creat un instrument care să permită persoanelor cu anumite cunoștințe de bază SQL să interogheze în mod flexibil datele în funcție de propriile nevoi.
2. Platforma oferă, de asemenea, capabilități de vizualizare a datelor, iar datele găsite pot fi ușor transformate în grafice și tablouri de bord.
2. Ce este un depozit de date?
În termeni umani, înseamnă că pentru nevoile statisticilor de date, unele date sunt stocate pe categorii, iar purtătorul de stocare este [tabelul de date]. O serie de [tabele de date] care se concentrează pe un anumit subiect sau subiecte împreună este un depozit de date.
Observa:
Datele de aici pot fi date de rezultat (cum ar fi statisticile zilnice privind volumul tranzacțiilor pentru o anumită pereche de tranzacționare de când Uniswap a intrat online)
Pot fi, de asemenea, date de proces (detalii ale fiecărei înregistrări de tranzacție a unei anumite perechi de tranzacționare de când Uniswap a intrat online: cine a inițiat-o, A pentru B, timpul tranzacției, tx_hash, valoarea tranzacției...)
3. Ce este SQL?
Să presupunem că vrei să mănânci ciocolată crocantă cu orez, dar nu poți ieși în oraș, așa că suni un alergător și îi spui: am nevoie de o cutie de ciocolată, marca lui este orez crocant. Am făcut o comisie la supermarket să cumpăr niște ciocolată și am trimis-o acasă.
Prin analogie, SQL este ceea ce ați spus, iar Dune Analytics este comisionul. Vă permite să comunicați cu depozitul de date și să mutați datele din depozitul de date.
2. Cum arată un tabel de date?
Vă puteți gândi la un tabel ca la o foaie Excel, fiecare conținând date diferite. Luați tabelul meu cel mai frecvent utilizat ca exemplu erc20 „ERC20_evt_Transfer” (jurnalul de transfer al jetoanelor ERC20).

Câmpurile tabelului sunt după cum urmează
din: din ce portofel se transferă moneda
către: în ce portofel a fost transferată moneda
valoare: câtă valută a fost transferată
contract_address: moneda care este transferată (adresa contractului a jetonului ERC20, care poate fi găsită de obicei pe CMC)
evt_tx_hash: Care este hash-ul tx al acestui transfer?
evt_index: Aceste date sunt numărul de tranzacție al acestei tranzacții.
evt_block_time: ora la care tranzacția a fost ambalată
evt_block_number: Înălțimea blocului în care este împachetată tranzacția
3. Cum se scrie SQL?
1. Structura de bază
Cea mai de bază structură sau sintaxă a SQL este
selectați : ce câmp să luați?
din : De la ce masă?
unde: Care sunt constrângerile?
De exemplu, consultați figura următoare pentru o explicație detaliată.
-------Linie de divizare a codului-------
selecta
"din"
,"la"
,"valoare"
de la erc20."ERC20_evt_Transfer"
unde „de la” = „\xb1a2b43a7433dd150bb82227ed519cd6b142d382”
și „adresa_contract” = „\xe6ee69495b571e1042f760d7f34009164aff87a2”
-------Linie de divizare a codului-------

Explicație suplimentară
În ceea ce privește adresa portofel/contractului sau hash-ul tx, se face un strat de procesare atunci când este stocat efectiv în baza de date: toate [0] din [0x] sunt înlocuite cu [\]
Selectați mai multe câmpuri separate prin virgule [engleză] Virgulele și ghilimelele implicate în SQL trebuie să fie în format engleză, altfel va fi raportată o eroare.
Dacă există mai multe condiții după [unde], utilizați [și] pentru a conecta aceste condiții atunci când doriți să obțineți intersecția mai multor condiții și utilizați [sau] pentru a le conecta când doriți să obțineți uniunea.
Numele de la citat este un nume de câmp din tabel.
Rezultatul final este prezentat în figura de mai jos. Există doar 4 date de tranzacție care îndeplinesc condițiile de mai sus.

2. Funcții agregate
Funcții comune de agregare
conta()
Numărați, calculați numărul total de rânduri care îndeplinesc cerințele Dacă trebuie să eliminați duplicatele pe baza unui anumit câmp, cum ar fi [la], puteți utiliza count(distinct „la”).
sumă()
Pentru a găsi suma, de exemplu, pentru a calcula cât a transferat ETH Sun către Binance în acest an, trebuie să folosim sum() pentru a adăuga
max()
Luați valoarea maximă De exemplu, pentru a calcula cât de mult a transferat ETH Sun către Binance în acest an, trebuie să utilizați max() pentru a calcula.
min()
Minim
medie()
Luați media
Funcția de agregare este de a extrage toate datele în condițiile de restricție unde și apoi de a le agrega folosind funcția
Pentru comoditate, să schimbăm adresa_contract
-------Linie de divizare a codului-------
selecta
"din"
,"la"
,"valoare"
de la erc20."ERC20_evt_Transfer"
unde „de la” = „\xb1a2b43a7433dd150bb82227ed519cd6b142d382”
și „adresa_contract” = „\x5ca9a71b1d01849c0a95490cc00559717fcf0d1d”
-------Linie de divizare a codului-------
Rezultatele sunt următoarele:
