[SQL] Sum query

Pagina: 1
Acties:

  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 07-05 13:46
Ik heb een tabel met 2 kolommen, user en document. Elke keer dat een gebruiker een document opslaat, komt er een record bij, de gebruikersnaam en het documentnaam.

Nu wil ik een query maken, die de documentnaam en het aantal verschillende (unieke) gebruikers die (dus samen) aan een document hebben gewerkt, laat zien.
Maar dan alleen waarbij er 2 of meer verschillende gebruikers aan het document hebben gewerkt (soort van samenwerking zeg maar). Iemand ideeen ?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

distinct op je gebruikers en count op je documenten gebruiken?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 25-05 22:36

ripexx

bibs

Je hebt niet SUM() nodig, maar COUNT().

Hier een voorzetje, nu de rest zelf proberen. ;)

code:
1
2
3
4
5
SELECT document, count(user) as aantal 
FROM table 
WHERE aantal >= 2 
GROUP BY document 
ORDER BY document ASC;

buit is binnen sukkel


  • Haaguit
  • Registratie: Juni 2001
  • Laatst online: 25-05 12:25

Haaguit

HBZNPLT!

select <gegevens>, distinct documentnaam, count(gebruiker)
from <tabel>
where having count(gebruiker)>1
group by <gegevens>, documentnaam

Zoiets denk ik. Die having count zorgt ervoor dat je alleen de regels krijgt die meer dan 1x voorkomen. Uitgaande dat de documentnamen ook uniek zijn trouwens.

Snelle pc | 40D achterdop voor lenzen


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

code:
1
2
3
4
SELECT document, count(user) as aantal 
FROM table 
GROUP BY document 
HAVING count(user) > 1

Who is John Galt?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Nog afgezien van dat dit redelijk basale SQL-kennis is ben ik eigenlijk wel benieuwd waarom je voor dit design hebt gekozen. Als documentnaam en usernaam je enige 2 kolommen zijn, mag ik dan nooit meer m'n username wijzigen? En heb je ook een tabel documenten? Hoe koppel je daarheen?

Professionele website nodig?


  • Haaguit
  • Registratie: Juni 2001
  • Laatst online: 25-05 12:25

Haaguit

HBZNPLT!

N00bpraat: 'ik mis een uniek ID in je ontwerp'.

:P

Snelle pc | 40D achterdop voor lenzen


  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 07-05 13:46
curry684 schreef op 10 mei 2004 @ 13:21:
Nog afgezien van dat dit redelijk basale SQL-kennis is ben ik eigenlijk wel benieuwd waarom je voor dit design hebt gekozen. Als documentnaam en usernaam je enige 2 kolommen zijn, mag ik dan nooit meer m'n username wijzigen? En heb je ook een tabel documenten? Hoe koppel je daarheen?
Tabellen worden aangeleverd, daar is verder niet veel aan te doen in dit geval :) Het doel van deze output is om metingen te doen, verder wordt er niks verandert aan data..

Iedereen bedankt voor de input, ik ga even aan de slag :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Huurmoordenaars schreef op 10 mei 2004 @ 13:36:
[...]

Tabellen worden aangeleverd, daar is verder niet veel aan te doen in dit geval :) Het doel van deze output is om metingen te doen, verder wordt er niks verandert aan data..

Iedereen bedankt voor de input, ik ga even aan de slag :)
Ooit van DTS gehoord?

Professionele website nodig?


  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

curry684 schreef op 10 mei 2004 @ 13:37:
[...]

Ooit van DTS gehoord?
nee, vertel..

(serieus)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

En wat zou de TS hiermee kunnen om zijn vraag te beantwoorden? Het geven van de ogenschijnlijk eenvoudige SQL code is toch wat nuttiger in dit geval..
(of mis ik hier iets)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 00:01

Janoz

Moderator Devschuur®

!litemod

Het slaat ok meer op het volgende dan op het orginele probleem ;) :
Huurmoordenaars schreef op 10 mei 2004 @ 13:36:

Tabellen worden aangeleverd, daar is verder niet veel aan te doen in dit geval :) Het doel van deze output is om metingen te doen, verder wordt er niks verandert aan data..

Iedereen bedankt voor de input, ik ga even aan de slag :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 07-05 13:46
Janoz schreef op 10 mei 2004 @ 13:47:
Het slaat ok meer op het volgende dan op het orginele probleem ;) :


[...]
Ok, ik begrijp de bedoeling hier van, maar het ligt net weer niet in mijn handen om het op een dusdanige manier te doen...
justmental schreef op 10 mei 2004 @ 13:10:
code:
1
2
3
4
SELECT document, count(user) as aantal 
FROM table 
GROUP BY document 
HAVING count(user) > 1
Dit is bijna wat het moet zijn, alleen moet ik de unieke gebruikers per document krijgen; probleempje hier in is dat het in Access (2000) is, die DISTINCT niet op de standaard manier ondersteundt....
code:
1
SELECT Count(*) AS uni_users FROM [select distinct(users) from table]

Op die manier gaat het wel, maar hoe ik dat weer gekoppeld ga krijgen :X

[ Voor 32% gewijzigd door VonAalscht op 10-05-2004 13:49 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Huurmoordenaars schreef op 10 mei 2004 @ 13:48:
[...]


Ok, ik begrijp de bedoeling hier van, maar het ligt net weer niet in mijn handen om het op een dusdanige manier te doen...
Je bedoelt dat jij een fucked up onbruikbaar datamodel accepteert terwijl er simpele goed bruikbare mogelijkheden zijn om het netjes, fatsoenlijk en performant aan te pakken... :o

Imho heeft iedere developer de verantwoordelijkheid om stupiditeiten te signaleren en aan te kaarten...

Professionele website nodig?


  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 07-05 13:46
curry684 schreef op 10 mei 2004 @ 14:30:
[...]

Je bedoelt dat jij een fucked up onbruikbaar datamodel accepteert terwijl er simpele goed bruikbare mogelijkheden zijn om het netjes, fatsoenlijk en performant aan te pakken... :o

Imho heeft iedere developer de verantwoordelijkheid om stupiditeiten te signaleren en aan te kaarten...
Dat het fucked up en onbruikbaar is wil ik niet meteen zeggen, maar om (veel) energie te gaan steken in een klein onderdeel van 'n totaalsysteem heb ik niet veel zin in, zeker omdat performance in dit geval niet zo'n grote issue is. De lijst van documenten wordt nooit zo gek lang, en de rapportage wordt om de x-aantal maanden gedraaid. Ja, ik begrijp wat je bedoelt om stupiditeiten aan te kaarten, maar prioriteitstelling is hier iets belangrijker :)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Zerveza schreef op 10 mei 2004 @ 13:43:
[...]


En wat zou de TS hiermee kunnen om zijn vraag te beantwoorden? Het geven van de ogenschijnlijk eenvoudige SQL code is toch wat nuttiger in dit geval..
(of mis ik hier iets)
Curry zet 'ooit van DTS gehoord' jij zegt 'nee vertel' en ik geef het antwoord. DTS bestaat niet uit eenvoudige SQL code. DTS is een apart 'onderdeel' van SQL Server waarin je zeer uitgebreid en geavanceerd bijv. data kunt importeren. Te uitgebreid om even hier uit te leggen, vandaar dat ik een link post naar een algemene uitleg.

Curry bedoelt dat je DTS kunt gebruiken om tabellen die je van bijv. externe partijen krijgt kunt importeren / converteren naar een beter datamodel.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 07-05 13:46
Huurmoordenaars schreef op 10 mei 2004 @ 13:48:
code:
1
2
3
4
SELECT document, count(user) as aantal 
FROM table 
GROUP BY document 
HAVING count(user) > 1


Dit is bijna wat het moet zijn, alleen moet ik de unieke gebruikers per document krijgen; probleempje hier in is dat het in Access (2000) is, die DISTINCT niet op de standaard manier ondersteundt....
code:
1
SELECT Count(*) AS uni_users FROM [select distinct(users) from table]

Op die manier gaat het wel, maar hoe ik dat weer gekoppeld ga krijgen :X
Schopje :X

  • DigiK-oz
  • Registratie: December 2001
  • Laatst online: 24-05 21:11
code:
1
2
3
4
SELECT document, count(distinct(user)) as aantal 
FROM table 
GROUP BY document 
HAVING count(distinct(user)) > 1


Of bedoel je dat access deze vorm van distinct niet ondersteunt??


Edit : laat maar, access snapt uberhaupt niks van distinct.....zal ff verder zoeken

[ Voor 22% gewijzigd door DigiK-oz op 11-05-2004 17:32 ]

Whatever

Pagina: 1