Query met subselect omzetten naar een zonder subselect

Pagina: 1
Acties:

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
ik heb de volgende query:
code:
1
2
3
SELECT ip  
FROM uis
GROUP BY ip


Daar wil ik het aantal rijen van gaan tellen. Dit zou dmv de subselect als volgt kunnen:
code:
1
2
3
4
SELECT COUNT(*)
FROM (SELECT ip  
          FROM uis
          GROUP BY ip)


Maar dat kan dus niet in MySql. Hoe doe ik dit? ????

  • eXtReMeBiE
  • Registratie: Februari 2002
  • Laatst online: 26-08 10:42
Waarom doe je niet (als je met PHP werkt):[php]mysql_num_rows(SELECT ip FROM uis GROUP BY ip);[/php]:?
Edit: http://www.php.net/manual/en/function.mysql-num-rows.php


Ok ik ben al stil ;)

[ Voor 35% gewijzigd door eXtReMeBiE op 16-12-2002 18:28 ]


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

eXtReMeBiE schreef op 16 december 2002 @ 18:21:
Waarom doe je niet (als je met PHP werkt):
PHP:
1
mysql_num_rows(SELECT ip FROM uis GROUP BY ip);
:?
Edit: http://www.php.net/manual/en/function.mysql-num-rows.php

Omdat dat in principe trager hoort te zijn en je meer taal afhankelijk bezig bent, dus is het oplaten lossen door de database zelf beter en verstandiger.
emkedouwe schreef op 16 December 2002 @ 18:18:
[..]
Maar dat kan dus niet in MySql. Hoe doe ik dit? ????
Omschrijven naar normaal nederlands.. ie je wilt het aantal rijen dat de eerste query oplevert.. dus doe je een count(ip) in de select ipv alleen "ip".


ie:
code:
1
2
3
SELECT count(ip)
FROM uis
GROUP BY ip


Ik adviseer je even een manual SQL door te nemen, dit behoort stiekum tot algemene kennis die je toch echt nodig hebt om een goeie database applicatie te kunnen maken.

[ Voor 10% gewijzigd door dusty op 16-12-2002 18:27 ]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ik werk natuurlijk niet met php ;)
maar die discussie ff terzijde

Ik werk met JSP/Servlets

[ Voor 18% gewijzigd door emkedouwe op 16-12-2002 18:27 ]


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
dusty schreef op 16 december 2002 @ 18:26:

code:
1
2
3
SELECT count(ip)
FROM uis
GROUP BY ip
Jaaa !! Maar dit bedoel ik niet. Deze had ik nml er zelf ook al uit kunnen bedenken. Ik krijg nu namelijk:

ip |count
111.111.0.0 | 5
111.111.0.2 | 3

Maar ik wil juist het aantal unieke hits hebben

dus:

Count
-------
2

  • Buzzman
  • Registratie: Juni 2000
  • Niet online
is dat dan niet zoiets als:
code:
1
2
SELECT count(distinct(ip))
FROM uid

dit werkt iig met sql2000 ;)

[ Voor 16% gewijzigd door Buzzman op 16-12-2002 19:10 ]


Verwijderd

misschien begrijp ik het niet helemaal wat je wilt maar werkt dit niet?

select count(*) from uis group by ip

of inplaats * iets van een id?

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Buzzman schreef op 16 December 2002 @ 19:09:
is dat dan niet zoiets als:
code:
1
2
SELECT count(distinct(ip))
FROM uid

dit werkt iig met sql2000 ;)
Heuh !!! Dat werkt thanx :)

  • VisionMaster
  • Registratie: Juni 2001
  • Laatst online: 18-07 20:32

VisionMaster

Security!

Buzzman schreef op 16 December 2002 @ 19:09:
is dat dan niet zoiets als:
code:
1
2
SELECT count(distinct(ip))
FROM uid

dit werkt iig met sql2000 ;)
au mijn hart... niet echt sql volgens de iso standaard (niet dat andere databases alles zo goed doen of zo, maar ja).

syntax:
select distinct ip of
select count(ip)

niet :
select distinct count(ip) is nutteloos
select count (distinct(ip)) is au (ms sql server?)

maar ja ... als het werkt op je database ... :+


ps: de distinct en een count(ip) in een regel is overbodig, omdat je met een count meestal maar 1 getal krijgt en dan wil je met de distinct elimineren dat je een dubbele uitslag krijgt ... dus twee keer een 3 als uitslag (ivm group by) geeft, maar een 3... kan hele vreemde uitslag geven.

I've visited the Mothership @ Cupertino


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Ach mysql kan het ook hoor: http://www.mysql.com/docu...x.html#Group_by_functions

Maar ik vind het zelf niet zo onlogisch eigenlijk (geen idee of het iso standaard is). Het voorbeeld van Buzzman moet je natuurlijk wel denken zonder een GROUP BY clause (op hetzelfde veld), anders is die inderdaad vrij onzinnig.
Pagina: 1