PostgreSQL - CASE
Uppgift:
You have access to two tables named top_half and bottom_half, as follows:
top_half schema
id
heads
arms
bottom_half schemaid
legs
tails
You must return a table with the format as follows:output schema
id
heads
legs
arms
tails
species
The IDs on the tables match to make a full monster. For heads, arms, legs and tails you need to draw in the data from each table.For the species, if the monster has more heads than arms, more tails than legs, or both, it is a 'BEAST' else it is a 'WEIRDO'. This needs to be captured in the species column.
All rows should be returned (10).
Tests require the use of CASE. Order by species.
Källa:https://www.codewars.com/kata/sql-basics-monsters-using-case/train/sql
Min lösning:
SELECT top_half.*, bottom_half.*,
CASE
WHEN (heads > arms) THEN 'BEAST'
WHEN (tails > legs) THEN 'BEAST'
ELSE 'WEIRDO'
END AS species
FROM top_half, bottom_half
ORDER BY species
LIMIT 10
Felmeddelande (PostgreSQL 9.6):
Fråga:
Är det någon som ser var jag gör fel? Jag förstår inte vad jag gör för fel
Se på hur du skrivit din join (det är en join även om du inte skrivit ordet 'join'). Om du gör select från flera tabeller vill du oftast (nästan alltid) beskriva dessa tabellers relation.
joculator skrev:Se på hur du skrivit din join (det är en join även om du inte skrivit ordet 'join'). Om du gör select från flera tabeller vill du oftast (nästan alltid) beskriva dessa tabellers relation.
Beskriver man tabellernas relation med hjälp av join eller bara villkoret top_half.id = bottom_half.id?
Jag skrev om min kod och den passerade alla tester (se nedan)
SELECT top_half.id, top_half.heads, bottom_half.legs, top_half.arms, bottom_half.tails,
CASE
WHEN (heads > arms) OR (tails > legs) THEN 'BEAST'
ELSE 'WEIRDO'
END AS species
FROM (top_half join bottom_half on top_half.id = bottom_half.id)
GROUP BY top_half.id
ORDER BY species
LIMIT 10
Det finns flera olika sätt att skriva joins. Här visar de minst 2:
joculator skrev:Det finns flera olika sätt att skriva joins. Här visar de minst 2:
Okej, tack för hjälpen