en-USsv-SE
Du är här:   Forum
HemHemSQLug.SESQLug.SETävlingarTävlingarSQLug.se challenge 2010SQLug.se challenge 2010
Föregående
 
Nästa
Nytt inlägg
2010-10-26 13:52
 
Nej, tävlingen slutar 30:e november.
 
Nytt inlägg
2010-10-26 14:02
 
Så är det ju!

Finns det någon som har en fungerade lösning överhuvudtaget, förutom mig?
 
Nytt inlägg
2010-10-27 01:29
 
Är det ok att resultaten varierar några tiondelar upp och ner eller måste det vara exakt? Det känns som att det beror på flyttalsproblem...
 
Nytt inlägg
2010-10-27 06:34
 
Hej,

Jag rekommenderar att du postar lösningen på vårt forum så får du våra testresultat.

Flyttalsproblem bortser vi ifrån.

MVH
Johan
 
Nytt inlägg
2010-10-27 15:50
 
Hej!

Jag har en lösning som får lite decimalfel och tyvärr så åker jag på semester om någon dag och hinner därför inte fixa mer med lösningen. Så jag tänkte att jag skickar in den ändå så kan jag läsa sen vad jag gjorde/tänkte fel. Hoppas det är ok.

SELECT

VehicleName

,CAST(SUM(ConsumptionPerMin*Duration)AS FLOAT)/CAST(SUM(Duration)AS FLOAT) AS Top20PctAveragePerMinute

FROM(

SELECT

VehicleName

,Duration

,ConsumptionPerMin

FROM(

SELECT

VehicleName

,Duration

,ConsumptionPerMin

,ROW_NUMBER() over (Partition BY VehicleName

order by ConsumptionPerMin DESC) as Rank

,COUNT(*) over (Partition BY VehicleName) as TotalRank

FROM(

SELECT

A.[VehicleName]

,CAST(DATEDIFF(ms,A.[StartTime],B.[StartTime])AS FLOAT) AS Duration

,CAST((B.[MeterValue]-A.[MeterValue])/(CAST(DATEDIFF(ms,A.[StartTime],B.[StartTime])AS FLOAT)/1000/60)AS FLOAT) AS ConsumptionPerMin

FROM(

SELECT

[VehicleName]

,[StartTime]

,[MeterValue]

,ROW_NUMBER() OVER(PARTITION BY [VehicleName] ORDER BY [StartTime]ASC) AS 'RowNumber'

FROM [Min].[dbo].[MeterReadings]

) A

INNER JOIN (

SELECT

[VehicleName]

,[StartTime]

,[MeterValue]

,ROW_NUMBER() OVER(PARTITION BY [VehicleName] ORDER BY [StartTime] ASC) -1 AS 'RowNumber'

FROM [Min].[dbo].[MeterReadings]

) B ON A.[VehicleName] = B.[VehicleName] AND A.[RowNumber] = B.[RowNumber]

)RES

)RES

WHERE RANK <= (TotalRank*.2)

)RES

GROUP BY VehicleName

ORDER BY 1

Mvh
Panos

 
Föregående
 
Nästa
HemHemSQLug.SESQLug.SETävlingarTävlingarSQLug.se challenge 2010SQLug.se challenge 2010


Annons