[sql / php] ingewikkelde sql query...

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
in de tabel download heb ik alle downloads staan,
nu wil ik de 50 meest voorkomende songid's van de laatste 250 uur hebben..
hoe doe ik dat in een sql query ???

dit is de tabel :
DOWNLOAD :
id = integer
songid = integer
date = timestamp

alvast bedankt :)
grz, dyon

Acties:
  • 0 Henk 'm!

Verwijderd

edit:

skip wartaal


Niet werken en antwoorden, dat werkt niet en beantwoordt niet... :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
waarom lukt dat hier niet mee dan??

Acties:
  • 0 Henk 'm!

Verwijderd

ben 'n beetje sufjes maar als je 'n beetje fratst met 'n where tijd<iets en 'n group by songid en 'n count ofzo moet je toch 'n aardig eind komen? zijn/tijd ontbreekt ok het uit te proberen maar moet toch kunnen lijkt me?

--Ray

Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Uhm.. iets als "select songid, count(songid) as bla from download group by songid order by bla desc"? :)

En dan moet je nog een 'where' toevoegen voor de laatste 250 uur, en iets waardoor je alleen de eerste 50 resultaten terugkrijgt, maar die beide dingen zijn db-specifiek en je hebt niet gezegd welke db je gebruikt. :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
tnx, is dit mischien iets??

select * from download
where date < tijdvannu-250 uur
order by date
limit 50

maar hoe doe ik de tijd van nu - 250 uur??

onno : ik gebruik mysql... :)

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

"where timestamp <='" . time(). "'"

ofzo? mits je tijd een unix timestamp is...

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

check de date functie van php, en mktime, dan kun je heel makkelijk 250 uur specifceren..

in de trant van
$vroeger = mktime(jouw-zut);
"where timestamp between '$vroeger' and '" .time() ."'"

Mooooo

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Met die query doe je heel iets anders dan waar je om vroeg: je geeft hiermee de 50 laatst gedownloade nummers terug.

En verder zou het nog altijd 'where date > tijdvannu-250 uur' moeten zijn. ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hey man, super tnx, ik ga nu eerst even eten, dan check ik zo of het lukt..
wiiiii
tnx ey

edit:

onno, nee, ik wil de 50 meest voorkomende id's van de laatste 250 uur :)

Acties:
  • 0 Henk 'm!

Verwijderd

Gebruik LIMIT.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
euhm ;)
onno,
check 6 reacties naar boven
limit 50.. :)

offtopic:
moeha, heb je slaaptekort ofzo :)

Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>onno, nee, ik wil de 50 meest voorkomende id's van de laatste 250 uur[/quote]Ja, dat snap ik, en dat is dus absoluut niet wat je krijgt met de query die jij gaf:<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>select * from download where date < tijdvannu-250 uur order by date limit 50[/quote]

Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
SELECT top 50 songid, count(songid) as aantaal FROM download GROUP BY songid HAVING (COUNT(songid) > 0) order by aantaal desc

Zoiets als dit denk ik, alleen moet er nog voorwaarden voor datum bij maar dat is afhankelijk van je database
Pagina: 1