Fedora-Linux.nl Forumindex Fedora-Linux.nl
Het forum van Fedora-Linux.nl.
Deze site wordt gehost door Exonet Internet Services
 
 FAQFAQ   ZoekenZoeken   GebruikerslijstGebruikerslijst   GebruikersgroepenGebruikersgroepen   RegistrerenRegistreren 
 ProfielProfiel   Log in om je privéberichten te bekijkenLog in om je privéberichten te bekijken   InloggenInloggen 

Query probleempje

 
Nieuw onderwerp plaatsen   Reageren    Fedora-Linux.nl Forumindex -> Programmeren en scripten
Vorige onderwerp :: Volgende onderwerp  
Auteur Bericht
klostpret



Geregistreerd op: 29 Aug 2007
Berichten: 15
Woonplaats: Utrecht

BerichtGeplaatst: Zo Dec 23, 2007 2:01 am    Onderwerp: Query probleempje Reageren met citaat

Omdat dit het enige nederlandstalige computer-gerelateerd forum is, waar ik lid van ben, stel ik deze rare vraag hier.

Voor AmaroK heb ik songanalysis, een klein programmatje, al mn muziek laten analyseren en in een DB laten opslaan. (rijen: url, volume verschil, bpm, freq1 t/m freq29, en nog wat onzin), waarbij die freqX percentages op frequentiebanden zijn.
Enfin, tot zover deze achtergrondinformatie.

Ik heb nu een scriptje die een query maakt om zo de liedjes die het meest op een gekozen nummer lijken er uit moet halen. Daar is een algoritme voor te bedenken, en na wat invullen levert dat dit op:

Code:
select COALESCE( tags.url , 'ERROR' ) as url , COALESCE( ABS( COALESCE( 0.75 * ( MAX( MIN( 1 - ( ( abs(0.310416 - freq0) + abs(0.310416 - freq0) + abs(0.138109 - freq0) + abs(0.138109 - freq2) + abs(0.125068 - freq1) + abs(0.125068 - freq3) + abs(0.096061 - freq2) + abs(0.096061 - freq4) + abs(0.057695 - freq3) + abs(0.057695 - freq5) + abs(0.047654 - freq4) + abs(0.047654 - freq6) + abs(0.041197 - freq5) + abs(0.041197 - freq7) + abs(0.03048 - freq6) + abs(0.03048 - freq8) + abs(0.025687 - freq7) + abs(0.025687 - freq9) + abs(0.022269 - freq8) + abs(0.022269 - freq10) + abs(0.04015 - freq9) + abs(0.04015 - freq11) + abs(0.064027 - freq10) + abs(0.064027 - freq12) + abs(0.051733 - freq11) + abs(0.051733 - freq13) + abs(0.060571 - freq12) + abs(0.060571 - freq14) + abs(0.057693 - freq13) + abs(0.057693 - freq15) + abs(0.058111 - freq14) + abs(0.058111 - freq16) + abs(0.047544 - freq15) + abs(0.047544 - freq17) + abs(0.051652 - freq16) + abs(0.051652 - freq18) + abs(0.06717 - freq17) + abs(0.06717 - freq19) + abs(0.05171 - freq18) + abs(0.05171 - freq20) + abs(0.050737 - freq19) + abs(0.050737 - freq21) + abs(0.0449 - freq20) + abs(0.0449 - freq22) + abs(0.044205 - freq21) + abs(0.044205 - freq23) + abs(0.048908 - freq22) + abs(0.048908 - freq24) + abs(0.055687 - freq23) + abs(0.055687 - freq25) + abs(0.060913 - freq24) + abs(0.060913 - freq26) + abs(0.050862 - freq25) + abs(0.050862 - freq27) + abs(0.036396 - freq26) + abs(0.036396 - freq28) + abs(0.035689 - freq27) + abs(0.035689 - freq29) + abs(0.059519 - freq29) + abs(0.059519 - freq28) ) / 2.5) , -1 ) , 1 ) ) + 0.25 * ( MAX ( -1 , 1 - ABS(volume_diff - 3.53332) ) ) * 1 , 0 ) + COALESCE( 1 - ( ( ABS( bpm - 109.683 ) / (160 - 120) ) * 2 ) * 1 , 0 ) ) * ( COALESCE( 0.75 * ( MAX( MIN( 1 - ( ( abs(0.310416 - freq0) + abs(0.310416 - freq0) + abs(0.138109 - freq0) + abs(0.138109 - freq2) + abs(0.125068 - freq1) + abs(0.125068 - freq3) + abs(0.096061 - freq2) + abs(0.096061 - freq4) + abs(0.057695 - freq3) + abs(0.057695 - freq5) + abs(0.047654 - freq4) + abs(0.047654 - freq6) + abs(0.041197 - freq5) + abs(0.041197 - freq7) + abs(0.03048 - freq6) + abs(0.03048 - freq8) + abs(0.025687 - freq7) + abs(0.025687 - freq9) + abs(0.022269 - freq8) + abs(0.022269 - freq10) + abs(0.04015 - freq9) + abs(0.04015 - freq11) + abs(0.064027 - freq10) + abs(0.064027 - freq12) + abs(0.051733 - freq11) + abs(0.051733 - freq13) + abs(0.060571 - freq12) + abs(0.060571 - freq14) + abs(0.057693 - freq13) + abs(0.057693 - freq15) + abs(0.058111 - freq14) + abs(0.058111 - freq16) + abs(0.047544 - freq15) + abs(0.047544 - freq17) + abs(0.051652 - freq16) + abs(0.051652 - freq18) + abs(0.06717 - freq17) + abs(0.06717 - freq19) + abs(0.05171 - freq18) + abs(0.05171 - freq20) + abs(0.050737 - freq19) + abs(0.050737 - freq21) + abs(0.0449 - freq20) + abs(0.0449 - freq22) + abs(0.044205 - freq21) + abs(0.044205 - freq23) + abs(0.048908 - freq22) + abs(0.048908 - freq24) + abs(0.055687 - freq23) + abs(0.055687 - freq25) + abs(0.060913 - freq24) + abs(0.060913 - freq26) + abs(0.050862 - freq25) + abs(0.050862 - freq27) + abs(0.036396 - freq26) + abs(0.036396 - freq28) + abs(0.035689 - freq27) + abs(0.035689 - freq29) + abs(0.059519 - freq29) + abs(0.059519 - freq28) ) / 2.5) , -1 ) , 1 ) ) + 0.25 * ( MAX ( -1 , 1 - ABS(volume_diff - 3.53332) ) ) * 1 , 0 ) + COALESCE( 1 - ( ( ABS( bpm - 109.683 ) / (160 - 120) ) * 2 ) * 1 , 0 ) ) , -1 ) as force_value, COALESCE( bpm , 0) as tempo from analysis inner join tags on analysis.url = tags.url where volume_diff is not NULL order by force_value desc limit 10


(Het is minder chaotisch dan het er uitziet, maargoed). Het enige probleem is,
er zit een syntax-fout in:
Citaat:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' -1 ) , 1 ) ) + 0.25 * ( MAX ( -1 , 1 - ABS(volume_diff - 3.53332) ) ) * 1 , 0 )' at line 1


Mocht iemand hem zien, heel graag Wink
Overigens: de (PHP) code is te vinden op: http://pastebin.be/7661[/url]
Terug naar boven
Profiel bekijken Stuur privébericht
Berichten van afgelopen:   
Nieuw onderwerp plaatsen   Reageren    Fedora-Linux.nl Forumindex -> Programmeren en scripten Tijden zijn in GMT + 1 uur
Pagina 1 van 1

 
Ga naar:  
Je mag geen nieuwe onderwerpen plaatsen in dit subforum
Je mag geen reacties plaatsen in dit subforum
Je mag je berichten niet bewerken in dit subforum
Je mag je berichten niet verwijderen in dit subforum
Je mag niet stemmen in polls in dit subforum


Powered by phpBB © 2001, 2005 phpBB Group
Vertaling door Lennart Goosens.