Autor | Zpráva | ||
---|---|---|---|
wolf_2006 Profil * |
#1 · Zasláno: 9. 7. 2015, 08:54:33
Ahoj,
mám tabulku s poli id a pocitadlo. Hodnota počítadla by měla být vždy větší, než hodnota předchozí. Potřeboval bych pomoc s dotazem, který by zjistil, zda jsou hodnoty pole pocitadlo opravdu vzestupné a případně vypsal záznamy, kde tomu tak není. Rád bych to řešil pouze na úrovni db, používám MySQL. Díky |
||
Kajman Profil |
Toto by mělo potvrdit, že je vše v pořádku
SELECT 1 ok FROM tabulka HAVING Count(*) = Count(DISTINCT pocitadlo) AND Min(pocitadlo) = 1 AND Max(pocitadlo) = Count(*) Toto by mohlo najít řádky, ke kterým neexistuje řádek s počítadlem o jedno menším nebo je takových řádků více než jeden... SELECT t1.pocitadlo chyba_pred, Count(*) predchudcu FROM tabulka t1 LEFT JOIN tabulka t2 ON t1.pocitadlo - 1 = t2.pocitadlo WHERE t1.pocitadlo > 1 GROUP BY t1.pocitadlo HAVING Count(*) != 1 |
||
wolf_2006 Profil * |
#3 · Zasláno: 9. 7. 2015, 13:40:55
Kajman:
hodnota počítadla nemusí být vyšší pouze o 1, ale jen vyšší, ale zkusím to dle tvého vzoru, díky. |
||
Kajman Profil |
#4 · Zasláno: 9. 7. 2015, 15:21:32
Aha, mně přišlo, že chcete kontrolovat, zda je v pocitadlo souvislá řada.
Pokud potřebujete kontrolovat že při větším id je i větší počítadlo, tak zkuste takto najít problémy SELECT t1.id id_1, t1.pocitadlo pocitadlo_1, t2.id id_2, t2.pocitadlo pocitadlo_2 FROM tabulka t1 JOIN tabulka t2 ON t1.id < t2.id AND t1.pocitadlo >= t2.pocitadlo |
||
Časová prodleva: 10 let
|
0