Toon posts:

[T-SQL] Problemen met een select query en agg. functie. *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb een tabel met 4 velden en 50.000 records.

de tabel ziet er als volgt uit:

veld1 varchar(50)
veld2 varchar(50)
veld3 varchar(50)
veld4 varchar(50)

Nu wil ik van veld 1 alle waarden terug hebben + de minimale waarde van veld1.
Dit moet gebeuren op basis van een group by op veld3 en veld4.

Zo iets:

select veld1, min(veld1)
from table1
group by veld3, veld4

Het probleem met deze query is, dat ik veld1 niet uit kan vragen tenzij deze een agg. functie heeft of in de group by voorkomt.

Hoe los ik dit probleem op?

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

2 queries uitvoeren?
Ik snap eigenlijk niet helemaal welke data je nu terug wil hebben en waarom je daarvoor een group by gebruikt. Zou je wat meer informatie kunnen geven? Ik heb zo het idee dat je de group by "oneigenlijk" gebruikt.

[ Voor 5% gewijzigd door Annie op 11-01-2005 20:39 ]

Today's subliminal thought is:


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:38
Wat heeft dit te maken met een update query ?

Verder ben ik het eens met Annie: ik snap niet wat je wilt bereiken...

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op dinsdag 11 januari 2005 @ 20:40:
Wat heeft dit te maken met een update query ?

Verder ben ik het eens met Annie: ik snap niet wat je wilt bereiken...
Sorry, foute topic titel.

Ik zal het wat uigebreider beschrijven.

Ik heb een tabel, die ziet er als volgt uit:

veld1 - veld2 - veld3 - veld4
1 - 1 - 1 - 3
2 - 1 - 2 - 4
3 - 1 - 1 - 3
3 - 1 - 2 - 4
2 - 1 - 1 - 3


De eerste stap die ik nu wil uitvoeren is dat ik alle waarden van veld1 wil hebben.
Dat is makkelijk: select veld1 from tabel1

Maar nu wil ik wat extra informatie, ik wil al minimale waarden van veld1 ook hebben.
Dit doe ik door een group by op veld3 en veld 4
het resultaat zou dan zijn:
veld1 - min(veld1)
1 - 1
2 - 2
3 - 1
3 - 2
2 - 1

Ik hoop dat het nu iets duidelijker is.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:22

Creepy

Tactical Espionage Splatterer

offtopic:
Als je een topicreport zou willen doen met een fatsoenlijk titel dan graag. Dan passen we het voor je aan :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik snap er niets van, je wilt alle waarden van veld1 en je wilt ook alle minimale waarden van veld1?

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


Verwijderd

Topicstarter
Dat is precies wat ik nodig heb.
Maar het probleem is al opgelost door een view.

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 19:04
Verwijderd schreef op donderdag 13 januari 2005 @ 18:01:
Dat is precies wat ik nodig heb.
Maar het probleem is al opgelost door een view.
Het zou leuk zijn als je de oplossing doorgeeft hier, maar het lukt ook zonder view:
SQL:
1
2
3
4
select distinct veld1, min, b.veld3, b.veld4 from tbl996852 b join
(
select min(veld1) as min, veld3, veld4 from tbl996852 group by veld3, veld4
) m on m.veld3=b.veld3 and m.veld4=b.veld4
Pagina: 1