Kezdőoldal » Számítástechnika » Programozás » Hogy lenne célszerű ezt az...

Hogy lenne célszerű ezt az SQL kérést összeállítani?

Figyelt kérdés

Most kezdtem ismerkedni az SQL nyelvvel, de belefutottam egy viszonyleg komplikáltabb lekérdezésbe, ami nem nagyon akar menni.


Szóval itt van a táblám: https://pastebin (pont) com/JgE8bKQH

Azokat a sorokat keresem, ahol az OVER értéke 0, de nem biztos, hogy ilyen van. HA nincs, akkor kellenének azok a sorok, ahol az UP értéke 1 és ezen belül DIST értéke a legkisebb ÉS a DOWN értéke 1 és ezen belül a DIST értéke a legkisebb.


Tehát a fenti táblából az ID = 1 és 12 kellene mivel ezeknél az OVER = 1, de ha ezek nem lennének OVER = 1, akkor azID = 6 és 9 kellene.


Nem megoldást keresek (bár igazából az se lenne rossz :D), hanem inkább a kérés logikájára lennék kíváncsi, hogy hogyan lenne célszerű felépíteni. IF-es struktúrát még nem írtam, és az sem világos, hogy tudom egy kérésben a DOWN = 1 és UP = 1- es filtert beletenni.


Akik SQL-lel foglalkoznak, azok szerint, ez a feladat mennyire számít komplexnek?



2018. júl. 4. 00:17
 1/2 sharkxxx ***** válasza:
100%

Az IF-et nem az SQL-ben szokták használni, hanem a meghívó nyelvben.

De ezt a feladatot meg lehet oldani valamilyen SQL trükkel egy darab SQL lekérdezéssel is:


SET @OVER_0_COUNT = (SELECT COUNT(*) FROM items WHERE (OVER = 0));

(SELECT * FROM items WHERE (@OVER_0_COUNT > 0) AND (OVER = 0))

UNION

(SELECT * FROM items WHERE (@OVER_0_COUNT = 0) AND (UP = 1) AND (DIST = (SELECT MIN(DIST) FROM items WHERE (UP = 1))))

UNION

(SELECT * FROM items WHERE (@OVER_0_COUNT = 0) AND (DOWN = 1) AND (DIST = (SELECT MIN(DIST) FROM items WHERE (DOWN = 1))));

2018. júl. 4. 10:54
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

Köszi szépen a választ, van egy-két kulcsszó, amit nem ismertem, amiknek mindenképpen utána nézek. Mivel nagyon gyorsan kellett a megoldás, és mivel már a példámban szereplő táblázat is egy relative komplex query eredménye, úgy döntöttem, hogy a táblázatot beolvasom egy pandas dataframe-be (pythonban fejlesztek) és azon csinálom további filterelést.


Köszi szépen mégegyszer!

2018. júl. 4. 15:22

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!