en-USsv-SE

Active Forums

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 05 Apr 2017 08:24 AM by  stefan gustafsson
SQLug.se Challenge 2017
 63 Replies
Sort:
You are not authorized to post a reply.
Page 3 of 4 << < 1234 > >>
Author Messages
SwePeso
New Member
New Member
Posts: 67


--
20 Mar 2017 07:28 AM
Hej alla,
det kom in ytterligare 16 bidrag bara igår kväll :-)

Jag kommer att gå igenom alla för att se om de ger rätt resultat, innan jag släpper på dem i Azure P1.
Dessa 16 bidrag kommer att ta hela dagen idag.

Tack alla som bidragit med lösningar, det är kul att se hur kreativiteten varierar! Vissa saker har de snabbaste lösningarna gemensamt och jag kommer att ta upp det vid genomgången.


//Peter
Henrik Linder
New Member
New Member
Posts: 8


--
20 Mar 2017 05:08 PM
Kul att se Torbjörn!
Här är mitt:

http://henriklinder.com/bidrag2.sql

Räknar kallt med att SHA1 hash ska fungera i denna tävling, trots att det numera är knäckt!
Daniel Hutmacher
New Member
New Member
Posts: 17


--
22 Mar 2017 02:00 PM
Mitt bidrag (eller, åtminstone det jag tror att jag skickade in) :

http://pastebin.com/tDdXyCis

Hade många intressanta idéer som vanligt, men hade inte tiden att utveckla dem i år.
Nyckelord: window functions, rekursiv cte, clustered columnstore index och batch mode processing.
stefan gustafsson
New Member
New Member
Posts: 29


--
22 Mar 2017 02:32 PM
@Daniel, din postade kod ger följande fel:
Msg 207, Level 16, State 1, Line 22
Invalid column name '_include'.

har du kanske någon version som fungerar?
Mikael Eriksson
New Member
New Member
Posts: 12


--
23 Mar 2017 02:01 PM
Mitt "Bidrag 2" som jag antar var snabbast för mig: http://pastebin.com/msgBjFZp

I princip likadan som Daniels lösning. Kanske lite enklare uttryckt i insert till Purchases och så använder jag en while loop istället för en recursive CTE i update av CustomerID's.

LarsOve
New Member
New Member
Posts: 6


--
23 Mar 2017 07:57 PM
Henrik Linder
New Member
New Member
Posts: 8


--
23 Mar 2017 08:40 PM
Hatten av! Mycket elegant lösning!



Posted By Mikael Eriksson on 23 Mar 2017 02:01 PM
Mitt "Bidrag 2" som jag antar var snabbast för mig: http://pastebin.com/msgBjFZp

I princip likadan som Daniels lösning. Kanske lite enklare uttryckt i insert till Purchases och så använder jag en while loop istället för en recursive CTE i update av CustomerID's.



Jonas
New Member
New Member
Posts: 7


--
23 Mar 2017 08:43 PM
Roligt att se era lösningar. Inser att jag har "en del" att lära av er (tex att förenkla efter problemet är löst)
Är ändå nöjd med att lyckats lösa uppgiften.
Mitt bidrag
http://pastebin.com/6vKewrR2
stefan gustafsson
New Member
New Member
Posts: 29


--
24 Mar 2017 03:54 PM
Hej
Här är min lösning: http://pastebin.com/9siABHuJ

Kul med så många olika lösningar.

Intressant att TABLOCKX gör så stor verkan på Azure SQL DB.

truncate table dbo.Customers
insert into dbo.Customers with (TABLOCKX)
(PurchaseID, CustomerID)
select PurchaseID, PurchaseID
from dbo.PurchasesBig

tar 4500ms på Azure
utan TABLOCKX tar det 19500ms

På en vanlig SQL server är skillnaden inte alls lika stor. (I båda fallen ca 1500ms)

@Mikael, din lösning var verkligen elegant - jag gillar särskilt loopen där du uppdaterar dbo.Customers
stefan gustafsson
New Member
New Member
Posts: 29


--
24 Mar 2017 04:13 PM
Här är en lösning som löser det allmänna problemet där relationerna kan se ut hur som helst:
http://pastebin.com/3gjqQ0MU

Observera att jag har lånat lite bra idéer från Mikaels och Daniels lösningar. Tablock, columnstore index och Mikaels avslutande loop var för bra för att motstå.

Denna lösning är inte alls så snabb som lösningen på den förenklade tävlingsuppgiften, men den löser ett betydligt svårare problem.

Någon annan som har en lösning på det allmänna problemet?
Karfunkel
New Member
New Member
Posts: 11


--
24 Mar 2017 09:16 PM
Min lösning är för det allmänna problemet. Den tar inte hänsyn till tidsaspekten öht.
Sergey
New Member
New Member
Posts: 16


--
24 Mar 2017 11:26 PM
Tack alla ni som postat era bidrag. Jag lär mig alltid något nytt från era lösningar.

Tack Peter och Johan för årets spännande tävling.

Mitt snabbaste: http://pastebin.com/u1AGjnfz

//Sergey
Henrik Linder
New Member
New Member
Posts: 8


--
27 Mar 2017 09:12 PM
Spänningen är olidlig! När tillkännages vinnaren?
JAhlen
Veteran Member
Veteran Member
Posts: 144


--
28 Mar 2017 06:45 PM
Hej!

Resultatet tillkännages imorgon kl 08.00.

MVH
Johan
JAhlen
Veteran Member
Veteran Member
Posts: 144


--
29 Mar 2017 08:33 AM
Resultaten är nu publicerade:
http://sqlugchallenge.azurewebsites...ultat.aspx

Grattis Sergey!

MVH
Johan
Jonas
New Member
New Member
Posts: 7


--
29 Mar 2017 09:38 AM
Grattis Sergey! Snyggt jobbat!
Tackar för en roligt tävling och till er som delat era lösningar. Så blir jag bättre!
Hoppas vi ses nästa år!

//Jonas
stefan gustafsson
New Member
New Member
Posts: 29


--
29 Mar 2017 01:28 PM
Attans - tvåa igen!!!

Tack för en som vanligt mycket väl genomförd tävling!

Det vore kul att få veta lite mer om det dataset som ni använde vid testerna.
Skulle ni kunna posta resultatet av följande SQL:

 
select 
	count(*) as rows, 
	count(distinct convert(char(6), [date], 112)) as count_month,
	count(distinct firstname+creditcard) as count_cc,
	count(distinct firstname+email) as count_email,
	count(distinct firstname+lastname+streetaddress+cast(zipcode as varchar(10))) as count_adr
from dbo.purchases

select count(distinct CustomerID) as count_customer
from dbo.Customers


Alternativt vore förstås det allra bästa om man kunde få tillgång till den riktiga testdatan.
JAhlen
Veteran Member
Veteran Member
Posts: 144


--
29 Mar 2017 02:10 PM
Hej Stefan,

Ja det var verkligen oerhört jämt mellan dig och Sergey!!

Så här ser vårt dataset ut:
rows = 1034861
count_month = 12
count_cc = 336945
count_email = 292407
count_adr = 324080
count_customer = 209994

MVH
Johan


Posted By stefan gustafsson on 29 mar 2017 01:28
Attans - tvåa igen!!!

Tack för en som vanligt mycket väl genomförd tävling!

Det vore kul att få veta lite mer om det dataset som ni använde vid testerna.
Skulle ni kunna posta resultatet av följande SQL:

 
select 
	count(*) as rows, 
	count(distinct convert(char(6), [date], 112)) as count_month,
	count(distinct firstname+creditcard) as count_cc,
	count(distinct firstname+email) as count_email,
	count(distinct firstname+lastname+streetaddress+cast(zipcode as varchar(10))) as count_adr
from dbo.purchases

select count(distinct CustomerID) as count_customer
from dbo.Customers


Alternativt vore förstås det allra bästa om man kunde få tillgång till den riktiga testdatan.


Mikael Eriksson
New Member
New Member
Posts: 12


--
29 Mar 2017 05:34 PM
Stort grattis Sergey!!
Henrik Linder
New Member
New Member
Posts: 8


--
29 Mar 2017 10:20 PM
Grattis Sergey!!

Arrangörer: det hade varit kul att få någon feedback på bidragen jag skickade in 19/3. Ger de rätt resultat på mindre datamängd?
Och återigen - tack för en rolig tävling! Alltid lärorikt.
You are not authorized to post a reply.
Page 3 of 4 << < 1234 > >>