Versio

mySQL query vraagstuk

Overzicht Reageren

Twan van der Poel

Twan van der Poel

22/11/2009 01:26:00
Quote Anchor link
Dag mensen,

ik zoek een mySQL functie die kan afronden op halven, als in;

1 blijft 1
1,2 wordt 1
1,6 wordt 1,5
2,7 wordt 2,5
2,3 wordt 2,5
2,2 wordt 2
3,4 wordt 3,5
u.s.w

Dit is de query in kwestie;

SELECT IFNULL((SUM(waarde) / COUNT(*)),0) AS waardering FROM rating

Iemand een suggestie ? Misschien iets met Ceil ?

Groet,

Twan van der Poel

edit; veld `waardering` dient dus afgerond te worden

SELECT IFNULL(round((SUM(waarde) / COUNT(*))),0) AS waardering FROM rating
Gewijzigd op 01/01/1970 01:00:00 door Twan van der Poel
 
PHP hulp

PHP hulp

25/05/2012 06:50:50
Gesponsorde koppelingen:
 
Wesley Overdijk

wesley Overdijk

22/11/2009 02:17:00
Quote Anchor link
wss heel ver gezocht maar....

2,7 * 2 = 5,4
5,4 naar 5. floor()
delen door 2 = 2,5.
 
Twan van der Poel

Twan van der Poel

22/11/2009 02:31:00
Quote Anchor link
complimenten, ik vind het eigenlijk wel leuk gevonden. Maar het klopt niet altijd.

En soortgelijke oplossingen komen work-arround achtig over, iemand nog suggesties ?
 
Wesley Overdijk

wesley Overdijk

22/11/2009 02:35:00
Quote Anchor link
klopt wel altijd? :P maar idd... er zal we een functie voor zijn denk ik. Good luck finding it.

ik ga doen waar ik het beste in ben.

slaaaapen. en dan morgen weer coden. jippie! lang leven nerd zijn. the chicks dig it :P
 
Twan van der Poel

Twan van der Poel

22/11/2009 02:37:00
Quote Anchor link
12,8 * 2 = 25,6
floor 25,6 = 25

25 / 2 = 12,5 Terwijl het 13 zou moeten zijn
 
Wesley Overdijk

wesley Overdijk

22/11/2009 02:39:00
Quote Anchor link
naja, afronden naar dichs bijzijnde dan. dat was de bedoeling. floor deed ik omdat het bij die berekening paste :P
 
Twan van der Poel

Twan van der Poel

22/11/2009 02:40:00
Quote Anchor link
ik ga ook naar bed, kom dr nog wel op terug.

mzzl
 
Stefan

Stefan

22/11/2009 03:21:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$nums
= array(1 => 1, 2 => 1.2, 3 => 1.6, 3 => 2.7, 4 => 2.3, 5 => 2.2, 6 => 3.4);

foreach($nums as $num) {
    echo round(($num*2), 0)/2 .'<br />';
}

?>


/* output:
1
1
2.5
2.5
2
3.5
*/


werkt perfect..
Gewijzigd op 01/01/1970 01:00:00 door Stefan
 
Eddy Erkelens

Eddy Erkelens

22/11/2009 11:20:00
Quote Anchor link
In de scriptlibary van phphulp staat mijn functie afronden(): http://phphulp.nl/php/scripts/11/1427/

Handig als je op 0.5 wil afronden, maar ook als je wil afronden op 0.125 oid.
 
Emmanuel Delay

Emmanuel Delay

22/11/2009 11:37:00
Quote Anchor link
Zo?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT FLOOR(2*waarde + 0.5)/2 AS afgeronde_waarde
FROM ...
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Twan van der Poel

Twan van der Poel

23/11/2009 17:47:00
Quote Anchor link
bumb

- is er niet een parameter voor floor of round om de tussenwaarde te bepalen ?
- iemand anders nog suggesties ?
 



Overzicht Reageren

Get Adobe Flash player