Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Välja max ur varje grupp?

Postades av 2007-11-06 00:06:34 - Jesper Alvermark, i forum databaser, Tråden har 2 Kommentarer och lästs av 1202 personer

Hej, håller på att bli knäpp på det här. Ska välja ut den tekniker som utfört en åtgärd flest gånger. Har flera olika tekniker utfört samma åtgärd flera gånger ska alla visas.

Mitt försök så här långt ser ut så här:

select atgard, tekniker, max(times) as antal
from (select atgard , tekniker, count(*) as times from serviceatgard group by tekniker, atgard)
group by atgard, tekniker
having max(times) >= all(select max(times)
from serviceatgard group by atgard, tekniker)


Jag får ut rätt data men det begränsas inte till bara de som har utfört en åtgärd flest gånger. Jag får med antalet gånger på alla tekniker som har utfört en åtgärd. Jag vill alltså ha ut endast max antal utförda åtgärder per åtgärd/tekniker. Hoppas det var någorlunda begripligt förklarat.

Önskat resultat är alltså något i stil med:

atgard tekniker antal
1 nisse 3
1 kalle 3
2 åsa 5
3 georg 1


Svara

Sv: Välja max ur varje grupp?

Postades av 2007-11-06 23:37:21 - Jesper Alvermark

Ok, nu efter mycket slit så har jag och en kompis fått ihop en fungerande variant som ger rätt (önskat) resultat.
Det känns dock inte som en vidare optimal lösning. Tar gärna lite input från någon kunnig om hur man skulle kunna banta ner den här frågan.

select tekniker,atgard, count(atgard) as antal
from serviceatgard
group by tekniker,atgard
having count(atgard)>=all(select max(summ)
                          from (select atgard, count(*) as summ
                                from serviceatgard
                                group by atgard,tekniker)
                          group by atgard)
or atgard not in (select atgard
from serviceatgard
group by tekniker,atgard
having count(atgard)>=all(select max(summ)
                          from (select atgard, count(*) as summ
                                from serviceatgard
                                group by atgard,tekniker)
                          group by atgard))


Svara

Sv:Välja max ur varje grupp?

Postades av 2007-11-07 23:34:54 - Håkan Borneland

Här kommer lite input (inte så kunnigt...)
Den är lite bantad (teckenmässigt iaf (ca 93 st)), vet inte om den är mer optimal dock.
<code>
SELECT c.atgard, c.tekniker, c.times FROM
(SELECT atgard, MAX(times) AS times FROM
(SELECT atgard, tekniker, COUNT(atgard) AS times
FROM serviceatgard
GROUP BY atgard, tekniker) AS a
GROUP BY atgard) AS b
JOIN
(SELECT atgard, tekniker, COUNT(atgard) AS times
FROM serviceatgard
GROUP BY atgard, tekniker) AS c
ON (b.atgard = c.atgard) AND (b.times = c.times)
</code>

/Håkan


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 570
27 958
271 741
5 824
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies