user:skript:stator:modules:stator-sqlexample
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
user:skript:stator:modules:stator-sqlexample [2015/12/05 18:32] – kiregps | user:skript:stator:modules:stator-sqlexample [2020/10/28 12:04] (current) – opravy překlepů mikrom | ||
---|---|---|---|
Line 5: | Line 5: | ||
Protože modul je docela komplikovaný a jeho možnosti opravdu široké, ukážeme jeho možnosti na několika příkladech. | Protože modul je docela komplikovaný a jeho možnosti opravdu široké, ukážeme jeho možnosti na několika příkladech. | ||
- | ===== Vylovenost pražských městských | + | <WRAP important> |
+ | ===== Vylovenost pražských městských částí ===== | ||
Na příkladu ukážeme: | Na příkladu ukážeme: | ||
* relativně přehledný zápis složitějšího SQL dotazu, včetně možného komentáře | * relativně přehledný zápis složitějšího SQL dotazu, včetně možného komentáře | ||
Line 21: | Line 22: | ||
=== Postup a vysvětlivky === | === Postup a vysvětlivky === | ||
- | |||
Napřed mezi použité moduly zařadíme modul '' | Napřed mezi použité moduly zařadíme modul '' | ||
Line 59: | Line 59: | ||
a přesně takto může být zapsán jako parametr SQL. | a přesně takto může být zapsán jako parametr SQL. | ||
- | Hlavni SELECT používá 2 tabulky A a B, které vzniknou jako vnořený SELECT. Tabulka A obsahuje pro každou městskou část počet všech keší, které může uživatel najít. Jde o keše, které nejsou archivované nebo sice archivované jsou, ale už je našel. Tabulka B pak obsahuje jen pocet nalezených keší. | + | Hlavni SELECT používá 2 tabulky A a B, které vzniknou jako vnořený SELECT. Tabulka A obsahuje pro každou městskou část počet všech keší, které může uživatel najít. Jde o keše, které nejsou archivované nebo sice archivované jsou, ale už je našel. Tabulka B pak obsahuje jen počet |
Nás ale zajímá hlavně 1. řádek. | Nás ale zajímá hlavně 1. řádek. | ||
* první sloupec je pojmenován '' | * první sloupec je pojmenován '' | ||
- | * druhý sloupec je pojmenován '' | + | * druhý sloupec je pojmenován '' |
* text za znakem '' | * text za znakem '' | ||
* třetí sloupec se jmenuje '' | * třetí sloupec se jmenuje '' | ||
* čtvrtý sloupec nese jméno '' | * čtvrtý sloupec nese jméno '' | ||
- | Ł | ||
===== První keše nalezené v každém státu ===== | ===== První keše nalezené v každém státu ===== | ||
- | |||
Další příklad vezmeme již rychleji. Chceme tabulku seřazenou podle data (a času) nálezu, vždy jen jednu kešku z každého státu. | Další příklad vezmeme již rychleji. Chceme tabulku seřazenou podle data (a času) nálezu, vždy jen jednu kešku z každého státu. | ||
Line 100: | Line 98: | ||
* pro řazení použít položku '' | * pro řazení použít položku '' | ||
* použit tabulku '' | * použit tabulku '' | ||
+ | |||
+ | ===== Keše nad 1000 m.n.m souhrnná tabulka ===== | ||
+ | Příklad pro ty kteří rádi lezou po horách - souhrnná tabulka která zobrazí kolik keší nad 1000 m.n.m jste v kterém státě ulovili, procento na stát, nejvyšší odlov a průměr dosažených výšek | ||
+ | <code SQL> | ||
+ | SELECT | ||
+ | gc.[country] AS ' | ||
+ | gc.[country] AS ' | ||
+ | COUNT(gc.[id]) AS ' | ||
+ | (COUNT(gc.[id])*100.00)/ | ||
+ | FROM geocache igc | ||
+ | INNER JOIN geotag igt ON igt.[id] = igc.[id] | ||
+ | INNER JOIN geotagcategory igtc ON igtc.[value] IN (" | ||
+ | INNER JOIN geotagvalue igtv ON igt.[ptrvalue] = igtv.[key] | ||
+ | WHERE igc.[dtfound] > 0 and CAST(igtv.[value] AS INT) > 999 | ||
+ | ) AS ' | ||
+ | MAX(CAST(gtv.[value] AS INT)) AS ' | ||
+ | SUM(CAST(gtv.[value] AS INT))/ | ||
+ | FROM geocache gc | ||
+ | INNER JOIN geotag gt ON gt.[id] = gc.[id] | ||
+ | INNER JOIN geotagcategory gtc ON gtc.[value] IN (" | ||
+ | INNER JOIN geotagvalue gtv ON gt.[ptrvalue] = gtv.[key] | ||
+ | WHERE gc.[dtfound] > 0 and CAST(gtv.[value] AS INT) > 999 | ||
+ | GROUP BY gc.[country] | ||
+ | ORDER BY COUNT(gc.[id]) DESC | ||
+ | </ | ||
+ | Pojmenování sloupců je potřeba doplnit do ColumnNames.ini ve vašem profilu\\ | ||
+ | **hi_count=Počet keší\\ | ||
+ | hi_proc=%\\ | ||
+ | hi_max=Nejvýše m.n.m.\\ | ||
+ | hi_prum=Průměr m.n.m.\\ | ||
+ | ** | ||
+ | \\ | ||
+ | Řazení je podle počtu keší ve státech\\ | ||
+ | Ukázka na mém [[http:// | ||
===== Dokumentace modulů Statoru ===== | ===== Dokumentace modulů Statoru ===== |
user/skript/stator/modules/stator-sqlexample.1449336751.txt.gz · Last modified: 2015/12/05 00:00 (external edit)