[MYSQL] query voor tellen van kollom

Pagina: 1
Acties:

  • Sabi
  • Registratie: Mei 2002
  • Laatst online: 10-06 14:41
Ik kan de juiste query niet vinden voor het volgende:

Ik heb een tabel met heel veel kolommen, een aantal zijn deze:
ID, tabbert, kip, hymer, hobby, dethleffs, fendt, en nog veel meer (stuk of 50)
ID heeft een unieke waarde bijvoorbeeld 'sabi'
en de rest van de merken hebben een 0,1,2,3 of 4 als waarden (ENUM)

Nu wil ik graag de volgende telling:
Waar ID = sabi tel het aantal kolommen waar een 2 staat

COUNT(*) geeft het aantal rijen of kan je die ook anders gebruiken, ik heb al gezocht in de manual en ik andere topics, maar kan het niet vinden

Of kan dit niet met een query en moet ik dit met PHP oplossen??

  • Aetje
  • Registratie: September 2001
  • Laatst online: 18-12-2025

Aetje

Troubleshooting met HAMERRR

Beetje basic.

SELECT merk,COUNT(*) as Aantal
WHERE ID = blaat
GROUP BY merk

Aantal is dan je gevraagde.

[ Voor 24% gewijzigd door Aetje op 27-10-2003 13:35 ]

Forget your fears...
...and want to know more...


  • Sabi
  • Registratie: Mei 2002
  • Laatst online: 10-06 14:41
Aetje schreef op 27 October 2003 @ 13:33:
Beetje basic.

SELECT merk,COUNT(*) as Aantal
WHERE ID = blaat
GROUP BY merk

Aantal is dan je gevraagde.
De kolom is niet merk, maar er zijn verschillende merken die allemaal een eigen kolom hebben omdat elke ID bij elk merk een ander waarde kan hebben.

dus de kolom naam is:
ID, tabbert, kip, hymer, hobby, dethleffs, fendt, etc.
en de waardes zijn bijvoorbeeld
sabi, 1,2,0,3,2,1

dus sabi heeft een 2 bij kip en bij dethleffs, dus ik wil de waarde van de kolommen tellen en niet die van de rijen

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
't Klinkt als een slecht datamodel.
Misschien lees je best eens iets over data normalisatie. In de P&W FAQ vind je onder de SQL sectie wel een linkje naar een artikel over normaliseren.

https://fgheysels.github.io/


  • pimlie
  • Registratie: November 2000
  • Laatst online: 18-08 13:15
Idd lijkt dit me een verkeerd database ontwerp.

Je zou het iig ook zo kunnen doen, maar mooi is anders ;)

code:
1
SELECT ID, (IF(tabbert = 2, 1, 0) + IF(kip = 2, 1, 0) + ...[voor alle kolommen dus]...) AS Count FROM....

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

code:
1
2
3
4
5
6
SELECT 
 IF(field1=2,1,0) +
 IF(field2=2,1,0) +
 IF(field3=2,1,0)
FROM BLAAT
WHERE id = sabi


zoiets?

* LuCarD slaps pimlie.... Voordringer.... :(

[ Voor 16% gewijzigd door LuCarD op 27-10-2003 13:52 ]

Programmer - an organism that turns coffee into software.


  • Aetje
  • Registratie: September 2001
  • Laatst online: 18-12-2025

Aetje

Troubleshooting met HAMERRR

Wat jij wil kan idd niet met een query denk ik. Wellicht wil het met een subquery... Maar dat wordt nogal traag. En ik heb geen zin om die lap tekst te gaan verzinnen zonder een goed model van die DBase.

Forget your fears...
...and want to know more...


  • Sabi
  • Registratie: Mei 2002
  • Laatst online: 10-06 14:41
Lijkt idd op een verkeerd dataontwerp, maar mijn probleem was, dat zowel de kolommen als de rijen veranderen er zijn +/- 50.000 ID's en +/- 50 merken (de namen heb ik hier vervangen omdat het eigenlijk bedrijfsnamen zijn) dus vandaar deze setup
Pagina: 1