Aktywne Wpisy
xmadesio +287
#przegryw #motoryzacja #chwalesie
Niecałą godzinkę temu kupiłem swoją pierwszą furkę. 1.5, 85KM, 160k przebiegu.
Ale będzie jeżdżone (ʘ‿ʘ)
Niecałą godzinkę temu kupiłem swoją pierwszą furkę. 1.5, 85KM, 160k przebiegu.
Ale będzie jeżdżone (ʘ‿ʘ)
Randy_the_Ram +69
Moja dziewczyna dostała propozycję, żeby tańczyć w klubie za pieniądze. Odpowiedziałem, że spoko, jeśli zgodzi się, to ja nie będę w to ingerować, po prostu się rozstaniemy i tyle. Nie wiem, nie wyobrażam sobie, że moja kobieta macha dupą w jakichś spelunach, to brak szacunku wobec siebie i mnie. Z drugiej strony nie chcę, żeby moja postawa wyglądała jak szantaż - po prostu pojawia się coś, czego nie mogę zaakceptować - zawijam
Ja napisałem taki kod -
SELECT a.country
FROM
(SELECT country, COUNT(Classes.class) AS COUNTClasses,
COUNT(Outcomes.ship) AS COUNTOutcomes
FROM Classes
LEFT JOIN Ships
ON Classes.class = Ships.class
RIGHT JOIN Outcomes
ON Outcomes.ship = Ships.name
OR Outcomes.ship = Classes.class
WHERE result = 'sunk'
GROUP BY country) a
WHERE COUNTClasses = COUNTOutcomes
Poprawny jest taki:
WITH boat_count AS (SELECT country, COUNT(*) AS scount
FROM (SELECT s.name AS name,
c.country AS country
FROM classes c
JOIN ships s
ON c.class = s.class
UNION
SELECT o.ship AS name,
c.country AS country
FROM classes c
JOIN outcomes o
ON o.ship = c.class
) f
GROUP BY country)
SELECT b.country
FROM (SELECT country,
COUNT(*) AS sunkcount
FROM (SELECT s.name AS name,
c.country AS country
FROM classes c
JOIN ships s
ON c.class = s.class
UNION
SELECT o.ship AS name,
c.country AS country
FROM classes c
JOIN outcomes o
ON o.ship = c.class
) a
JOIN outcomes o
ON o.ship = a.name
WHERE result ='sunk'
GROUP BY country
) b
JOIN boatcount
ON boatcount.country = b.country
AND boatcount.scount = b.sunk_count
I tu zastanawiam się jakim cudem mam na to wpaść? To kwestia przerobienia iluś tam zapytań, czy po prostu jestem na to za głupi #zalesie #pytanie
The database of naval ships that took part in World War II is under consideration. The database consists of the following relations:
Classes(class, type, country, numGuns, bore, displacement)
Ships(name, class, launched)
Battles(name, date)
Outcomes(ship, battle, result)
Ships in classes all have the same general design. A class is normally assigned either the name of the first ship built according to the corresponding design, or a name that
Sprawdź łączenie tabel po pierwsze. Jeśli masz za dużo/za mało danych niż się spodziewasz zazwyczaj u początkującego tutaj jest problem.Rozrysuj sobie tą bazę, zobacz jakie są klucze główne i obce w tabelach - pomysł jak to połączyć w zapytaniu oraz postaw dobry warunek. Z racji że siedzę na telefonie trochę ciężko mi dokładnie sprawdzić.
Co do techniki -w modelowym rozwiązaniu użyto CTE (WITH boat_count...) -jest to bardziej przejrzyste rozwiązanie niż zwyczajne subquery; łatwiej to czytać i zrozumieć a