Loading...
Isibel avatar Isibel 41 Точки

В условието пише, че трябва да е една - "At the end your query should return a single value: the SUM of all differences." - до колкото разбирам, но въпреки коректния резултат при мен в  Judge не си взимам точките. Ако някой е успял да даде малко инфо, моля!

 

0
02/10/2016 14:20:16
RFilipov avatar RFilipov 136 Точки

Една заявка е.

SELECT SUM(XX.DIFF) 
FROM (SELECT DepositAmount - (SELECT DepositAmount FROM WizzardDeposits WHERE Id = g.Id + 1) 
AS DIFF FROM WizzardDeposits g) AS XX

 

6
alexei.tcekov avatar alexei.tcekov 33 Точки

може ли да подскажеш защо тази заявка не е вярна според judge ? 

/*

declare @sumDif money
set @sumDif =  (
    select 
        sum( w.DepositAmount - wi.DepositAmount) 
    from WizzardDeposits w
        join WizzardDeposits wi
        on wi.Id = w.Id + 1)
select @sumDif

*/

0
TeodorDimitrov avatar TeodorDimitrov Trainer 46 Точки

Judge третира резултатите по различен начин.
Твоята заявка в judge връща 44393.9700, а се очаква 44393.97.  Типът money явно пази 4 символа след десетичната запетайка(в judge).

Ако промениш заявката така:

declare @sumDif DECIMAL(18,2)
set @sumDif =  (
    select 
        sum( w.DepositAmount - wi.DepositAmount) 
    from WizzardDeposits w
        join WizzardDeposits wi
        on wi.Id = w.Id + 1)
select @sumDif

Ще върне правилни резултати.

4
kaloyannikov avatar kaloyannikov 531 Точки

Eто как се решава

SELECT 44393.97 AS sum_difference

:D

9
lapd87 avatar lapd87 103 Точки
SELECT 
    ((SELECT 
            `deposit_amount`
        FROM
            `wizzard_deposits`
        LIMIT 1) - (SELECT 
            `deposit_amount`
        FROM
            `wizzard_deposits`
        ORDER BY `id` DESC
        LIMIT 1)) AS `sum_difference`;
2
MartinBG avatar MartinBG 4803 Точки

Много хитро решение и добър пример за out of the box thinking! yes

Иначе, елементарното (и неефективно) решение е нещо такова:

SELECT
	SUM(`hw`.`deposit_amount` - `gw`.`deposit_amount`) as 'sum_difference'
FROM
    `wizzard_deposits` AS `hw`, `wizzard_deposits` AS `gw`
WHERE
     `gw`.`id` - `hw`.`id` = 1;

 

0
lapd87 avatar lapd87 103 Точки

Благодаря! Докато мислех как да го измъдря и търсих гугъл че не ми се получаваше се усетих за това и реших да постна за бъдещите поколения.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.