Data Aggregation упражнение - разяснения

Здравейте,

Вчера на упражнението не ни се получиха някои задачи и казах, че ще пиша във форума с малко повече информация около тях (12 и 18 задача).

12та задача

Селектирането на имената + депозитите на всички магьосници + тези на магьостниците след тях

SELECT `wd`.`first_name` AS `host_wizard`,
		 `wd`.`deposit_amount` AS `host_amount`,
		 (SELECT `first_name` FROM `wizzard_deposits` AS `wd1`
		  WHERE `wd1`.`id` = `wd`.`id` + 1) AS `guest_wizard`,
		 (SELECT `deposit_amount` FROM `wizzard_deposits` AS `wd1`
		  WHERE `wd1`.`id` = `wd`.`id` + 1) AS `guest_amount`
FROM `wizzard_deposits` AS `wd`

Поради ограничение от SQL не можем да използваме преименувани колоно за следваща операция в рамките на същия SELECT оператор т.е. не можем да извикаме

`host_amount` - `guest_amount` AS `difference`

Това, което можехме да направим обаче е да извикаме още веднъж големината на текущия депозит и SELECT заявката за големината на следващия депозит

`wd`.`deposit_amount` - (SELECT `deposit_amount` FROM `wizzard_deposits` AS `wd1`
		  WHERE `wd1`.`id` = `wd`.`id` + 1) AS `difference`

за да получим разликите. Имайки вече всички съседни магьосници + разликите в депозитие им можем да преминем към пресмятането на средната разлика. Първо ще оставим само колоната, която показва разликата в бюджетите

SELECT 
    `wd`.`deposit_amount` - (SELECT `deposit_amount` FROM `wizzard_deposits` AS `wd1`
		             WHERE `wd1`.`id` = `wd`.`id` + 1) AS `difference`
FROM `wizzard_deposits` AS `wd`;

а след това и ще намерим сумата на всички разлики, чрез SUM. Така получаваме 100/100 чрез

SELECT SUM(`wd`.`deposit_amount` - (SELECT `deposit_amount` FROM `wizzard_deposits` AS `wd1`
		  WHERE `wd1`.`id` = `wd`.`id` + 1)) AS `sum_difference`
FROM `wizzard_deposits` AS `wd`;

18та задача

Резултатите, които получавам от моята заявка

SELECT `first_name`, `last_name`, `department_id`
FROM `employees` AS `e`
WHERE `salary` >= 
	(SELECT AVG(`salary`) FROM `employees` AS `e1` WHERE `e1`.`department_id` = `e`.`department_id`)
	
ORDER BY `department_id`;

са абсолютно същите като това, което се получава от заявката на колежката, която е решила задачата днес, но има разминаване в подредбата на записите, което реално парви задачата ни невярна спрямо judge. Ще публикувам ъпдейт в най-кратки срокове.