Pa zar poenta zadatka nije bila da se imena gostiju prikazu uparena u dve kolone (jedna soba jedan red)?
Ako se iz mog poslednjeg upita
Ako se iz mog poslednjeg upita
Code:
SELECT pairs.gender,
pairs.topic,
pairs.room_number,
MAX(pairs.first_guest) AS first_guest,
MAX(pairs.second_guest) AS second_guest
FROM (SELECT g1.gender,
g1.topic,
(COUNT(g1.guestname) + 1) / 2 AS room_number,
CASE WHEN COUNT(g1.guestname) % 2 = 1
THEN g1.guestname
ELSE NULL
END AS first_guest,
CASE WHEN COUNT(g1.guestname) % 2 = 0
THEN g1.guestname
ELSE NULL
END AS second_guest
FROM guests AS g1
INNER JOIN
guests AS g2
ON g1.gender = g2.gender
AND g1.topic = g2.topic
AND g1.guestname >= g2.guestname
GROUP BY g1.gender, g1.topic, g1.guestname
) AS pairs
GROUP BY pairs.gender, pairs.topic, pairs.room_number
ORDER BY pairs.gender, pairs.topic, pairs.room_number
izvuce unutrasnji upit, izbaci podela na dve kolone (CASE izrazi) i doda sortiranje dolazi se doSELECT pairs.gender,
pairs.topic,
pairs.room_number,
MAX(pairs.first_guest) AS first_guest,
MAX(pairs.second_guest) AS second_guest
FROM (SELECT g1.gender,
g1.topic,
(COUNT(g1.guestname) + 1) / 2 AS room_number,
CASE WHEN COUNT(g1.guestname) % 2 = 1
THEN g1.guestname
ELSE NULL
END AS first_guest,
CASE WHEN COUNT(g1.guestname) % 2 = 0
THEN g1.guestname
ELSE NULL
END AS second_guest
FROM guests AS g1
INNER JOIN
guests AS g2
ON g1.gender = g2.gender
AND g1.topic = g2.topic
AND g1.guestname >= g2.guestname
GROUP BY g1.gender, g1.topic, g1.guestname
) AS pairs
GROUP BY pairs.gender, pairs.topic, pairs.room_number
ORDER BY pairs.gender, pairs.topic, pairs.room_number
Code:
SELECT g1.gender,
g1.topic,
(COUNT(g1.guestname) + 1) / 2 AS room_number,
g1.guestname
FROM guests AS g1
INNER JOIN
guests AS g2
ON g1.gender = g2.gender
AND g1.topic = g2.topic
AND g1.guestname >= g2.guestname
GROUP BY g1.gender, g1.topic, g1.guestname
ORDER BY g1.gender, g1.topic, g1.guestname
sto je identicno CandyMan-ovom resenju :)
SELECT g1.gender,
g1.topic,
(COUNT(g1.guestname) + 1) / 2 AS room_number,
g1.guestname
FROM guests AS g1
INNER JOIN
guests AS g2
ON g1.gender = g2.gender
AND g1.topic = g2.topic
AND g1.guestname >= g2.guestname
GROUP BY g1.gender, g1.topic, g1.guestname
ORDER BY g1.gender, g1.topic, g1.guestname
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming." - Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming." - Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo