Versio

Select AVG

Overzicht Reageren

Nira Duursma

Nira Duursma

03/12/2010 13:49:22
Quote Anchor link
ik heb het een en ander al gevonden hier over Select AVG

maar ik heb even een vraagje om dat ik steeds 0 krijg als uitkomst kan je ook deze functie gebruiken als de data opgeslagen staat als varchar ook al staan er alleen getallen in?
 
PHP hulp

PHP hulp

25/05/2012 15:26:40
Gesponsorde koppelingen:
 
Bas Cost Budde

Bas Cost Budde

03/12/2010 13:56:09
Quote Anchor link
Dat lijkt me een uitstekende conclusie: je krijgt 0.

select avg(cast(veldnaam as signed))
 
Nira Duursma

Nira Duursma

03/12/2010 14:00:47
Quote Anchor link
hoi Bas maar waarom krijg ik 0? thats the question

ik gebruik nu het volgende

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php


    $result
= mysql_query("SELECT AVG('sl131') AS gemiddelde FROM data") or die(mysql_error());
    $row = mysql_fetch_array($result);
    echo $row['gemiddelde'];

?>
Gewijzigd op 03/12/2010 14:01:06 door Nira Duursma
 
Bas Cost Budde

Bas Cost Budde

03/12/2010 14:02:26
Quote Anchor link
die query vraagt om het gemiddelde van de tekst 'sl131'. Om een veldnaam moeten geen quotes. Verder, als dat een varchar-veld is zoals je zegt, raad ik mijn suggestie aan. Probeerde je die al uit?
 
- Mark -

- Mark -

03/12/2010 14:06:54
Quote Anchor link
kun je niet van varchar naar int gaan? Je moet het probleem wel bij de bron aanpakken als dat mogelijk is.
 
Bas Cost Budde

Bas Cost Budde

03/12/2010 14:11:09
Quote Anchor link
@mark je bedoelt in de tabel zeker?

We weten in ieder geval wat het veld betekent... niet. Wat een bijzondere veldnaam. Waar komt die vandaan?
 
- Mark -

- Mark -

03/12/2010 14:19:01
Quote Anchor link
:p De kolom zul je bedoelen. Maar ja die bedoel ik. Anyway als ik op google sl131 intyp gaat het van goud tot sheet labels dus ik zou het niet weten.
 
Bas Cost Budde

Bas Cost Budde

03/12/2010 14:20:39
Quote Anchor link
"de kolom"?! krijgen we nou? Het is een *attribuut* hoor :D
 
- Mark -

- Mark -

03/12/2010 14:25:20
Quote Anchor link
Ik ben een beetje scheef aan het lezen vandaag, we hebben het in elk geval over hetzelfde.
 
Nira Duursma

Nira Duursma

03/12/2010 14:32:46
Quote Anchor link
helaas gaat het niet om goud was het maar zo..

@ Bas hoe moet ik die select avg(cast(veldnaam as signed)) zien

SELECT( waar komt die cast vandaan(sl131 as signed))
 
Bas Cost Budde

Bas Cost Budde

03/12/2010 14:45:10
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT AVG(CAST(sl131 AS SIGNED)) FROM da-di-da


'cast' is in mysql ingebouwd. (ook in postgres for that matter). Zie manual. Ik weet nog een manier

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT AVG(sl131+0)


maar die vind ik minder fraai.
 
Nira Duursma

Nira Duursma

03/12/2010 14:55:07
Quote Anchor link
ik heb nu:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$result
= mysql_query("SELECT AVG(CAST(sl131 AS SIGNED)) FROM data ") or die(mysql_error());
    $row = mysql_fetch_array($result);
    echo $row['SIGNED'];
?>


maar er komt nix uit?
Gewijzigd op 03/12/2010 14:56:13 door Nira Duursma
 
Bas Cost Budde

Bas Cost Budde

03/12/2010 15:00:31
Quote Anchor link
klopt, er is ook geen veld of alias 'signed'.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT AVG(CAST(sl131 AS SIGNED)) AS aver FROM data
...
echo $row['aver']
 
Nira Duursma

Nira Duursma

03/12/2010 15:38:45
Quote Anchor link
nu komt er wel een getal uit :)

maar........ ik ben er nog niet

de getallen in de database staan er als

10,78
10,40
11,34
enz dan krijg ik weer 0,00
 
M Ypma

M Ypma

03/12/2010 15:43:15
Quote Anchor link
Maak dan gewoon echt een float ipv een varchar, zo hoort het en zijn al je problemen verdwenen en hoef je ook geen vieze pleisters te plakken.
Gewijzigd op 03/12/2010 15:43:32 door M Ypma
 
- SanThe -

- SanThe -

03/12/2010 16:41:49
Quote Anchor link
Nira Duursma op 03/12/2010 15:38:45:
de getallen in de database staan er als

10,78
10,40
11,34


10,78 is GEEN getal, maar het zijn TWEE getallen met een komma ertussen.
 



Overzicht Reageren