/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
summér værdi i Mysql!?
Fra : Sique


Dato : 27-01-02 09:57

Hej...

For at gå lige til sagen:

Jeg har en Mysql tabel, der indeholder en række værdier.

Nu vil jeg gerne have skrevet summen af disse værdier ud, fratrukket de x
højeste. hvor x er antallet af værdier/4

Dvs:

hvis min tabel indeholder flg:

1,2,3,2,3,1,2,4

skal jeg fjerne de to højeste, her 4 og 3 og regne summen ud for resten,
altså 11.

Kan dette gøres i SQL eller skal der laves en funktion til det i PHP?

MVH
Regin



 
 
Andreas Hjordt (27-01-2002)
Kommentar
Fra : Andreas Hjordt


Dato : 27-01-02 10:18

"Sique" <none@at.all> wrote in message
news:3c53c10e$0$253$ba624c82@nntp03.dk.telia.net...
> Hej...
>
> For at gå lige til sagen:
>
> Jeg har en Mysql tabel, der indeholder en række værdier.
>
> Nu vil jeg gerne have skrevet summen af disse værdier ud, fratrukket de x
> højeste. hvor x er antallet af værdier/4
>

select sum(some_col) - count(some_col) / 4 as mysum from some_tbl;

ovenstående skulle gøre det. (off the top of my head)

mvh
Andreas Hjordt




Andreas Hjordt (27-01-2002)
Kommentar
Fra : Andreas Hjordt


Dato : 27-01-02 10:20

"Andreas Hjordt" <ahj@SPAMtrition.dk> wrote in message
news:3c53c5db$0$89116$edfadb0f@dspool01.news.tele.dk...
> "Sique" <none@at.all> wrote in message
> news:3c53c10e$0$253$ba624c82@nntp03.dk.telia.net...
> > Hej...
> >
> > For at gå lige til sagen:
> >
> > Jeg har en Mysql tabel, der indeholder en række værdier.
> >
> > Nu vil jeg gerne have skrevet summen af disse værdier ud, fratrukket de
x
> > højeste. hvor x er antallet af værdier/4
> >
>
> select sum(some_col) - count(some_col) / 4 as mysum from some_tbl;
>

Du skriver noget om "x højeste" se evt. max()

mvh
Andreas Hjordt




Sique (28-01-2002)
Kommentar
Fra : Sique


Dato : 28-01-02 17:16

Ja...
med x højeste mener jeg:

For hver gang der er 4 poster, skal den højeste trækkes fra. Dvs. hvis der
er 8 værdier skal de to højeste værdier trækkes fra summen.

select sum(some_col) - count(some_col) / 4 as mysum from some_tbl;


Jeg prøvede ovenstående, men fik kun: "Resource id #4" tilbage...nogen der
ved hvad det betyder?

Selve ovenstående statement funger da heller ikke, da den bare trækker
antallet af colonner/4 fra summen, og det er ikke meningen.

Men jeg kan prøve at uddybe det:

Jeg har en række colonner (tubler er det ikke det de hedder?!?) hvor jeg vil
have den samlede værdi af alle, fra trukket de højeste værdier. Antallet af
de højeste værdier der ikke skal medregnes afhænger af antallet af kolonner.
Helt præcist skal antallet af kolonner / 4 ikke medregnes i det samlede
resultat.

eks. 1,2,3,4

Her skal 4 ikke medregnes i det samlede resultat
og 1,2,3,7,4,5,6,8

Her skal 7 og 8 ikke medregnes.

Kan man lave noget med en sum(select et eller andet order by max() bla
bla.....) og så samtidig fortælle at man kun vil have summen udregnet på
antallet af kolonner - de højeste (som er en variabel)

Lyder det indviklet....Lidt men det virker ret simpelt i mit lille hoved*S*


Er det muligt at angive hvor mange tubler man vil ha returneret i et select?


/Regin

PS: tak for hjælpen indtil videre....den hjalp mig i et andet problem

"Andreas Hjordt" <ahj@SPAMtrition.dk> wrote in message
news:3c53c65a$0$89085$edfadb0f@dspool01.news.tele.dk...
> "Andreas Hjordt" <ahj@SPAMtrition.dk> wrote in message
> news:3c53c5db$0$89116$edfadb0f@dspool01.news.tele.dk...
> > "Sique" <none@at.all> wrote in message
> > news:3c53c10e$0$253$ba624c82@nntp03.dk.telia.net...
> > > Hej...
> > >
> > > For at gå lige til sagen:
> > >
> > > Jeg har en Mysql tabel, der indeholder en række værdier.
> > >
> > > Nu vil jeg gerne have skrevet summen af disse værdier ud, fratrukket
de
> x
> > > højeste. hvor x er antallet af værdier/4
> > >
> >
> > select sum(some_col) - count(some_col) / 4 as mysum from some_tbl;
> >
>
> Du skriver noget om "x højeste" se evt. max()
>
> mvh
> Andreas Hjordt
>
>
>



Andreas Hjordt (28-01-2002)
Kommentar
Fra : Andreas Hjordt


Dato : 28-01-02 18:10

"Sique" <none@at.all> wrote in message
news:3c557999$0$247$ba624c82@nntp02.dk.telia.net...
> Ja...
> med x højeste mener jeg:
>
> For hver gang der er 4 poster, skal den højeste trækkes fra. Dvs. hvis der
> er 8 værdier skal de to højeste værdier trækkes fra summen.
>
> select sum(some_col) - count(some_col) / 4 as mysum from some_tbl;
>
>
> Jeg prøvede ovenstående, men fik kun: "Resource id #4" tilbage...nogen der
> ved hvad det betyder?
>
> Selve ovenstående statement funger da heller ikke, da den bare trækker
> antallet af colonner/4 fra summen, og det er ikke meningen.
>
> Men jeg kan prøve at uddybe det:
>
> Jeg har en række colonner (tubler er det ikke det de hedder?!?) hvor jeg
vil
> have den samlede værdi af alle, fra trukket de højeste værdier. Antallet
af
> de højeste værdier der ikke skal medregnes afhænger af antallet af
kolonner.
> Helt præcist skal antallet af kolonner / 4 ikke medregnes i det samlede
> resultat.
>
> eks. 1,2,3,4
>
> Her skal 4 ikke medregnes i det samlede resultat
> og 1,2,3,7,4,5,6,8
>
> Her skal 7 og 8 ikke medregnes.
>
> Kan man lave noget med en sum(select et eller andet order by max() bla
> bla.....) og så samtidig fortælle at man kun vil have summen udregnet på
> antallet af kolonner - de højeste (som er en variabel)
>
> Lyder det indviklet....Lidt men det virker ret simpelt i mit lille
hoved*S*
>
>
> Er det muligt at angive hvor mange tubler man vil ha returneret i et
select?

Jeg er ret træt og kan ikke overskue resten, men hvis du mener antal rækker
returneret bør du kigge på sql's limit funktion.

mvh
Andreas Hjordt



Sique (28-01-2002)
Kommentar
Fra : Sique


Dato : 28-01-02 19:29

Det kan godt være du er træt, men det hjælper sgu hver gang *S*

Så nu er jeg faktisk kommet frem til følgende, som er det jeg skal
bruge...mere eller midre...

SELECT sum(Place) FROM resultat WHERE Boat = 'something' ORDER BY Regatta,
Race limit 0,3

Eneste problem er bare, at sum() funktionen ser ud til at være ligeglad med
limit funktionen. Kan det være rigtigt?



"Andreas Hjordt" <ahj@SPAMtrition.dk> wrote in message
news:3c5585f3$0$14002$edfadb0f@dspool01.news.tele.dk...
> "Sique" <none@at.all> wrote in message
> news:3c557999$0$247$ba624c82@nntp02.dk.telia.net...
> > Ja...
> > med x højeste mener jeg:
> >
> > For hver gang der er 4 poster, skal den højeste trækkes fra. Dvs. hvis
der
> > er 8 værdier skal de to højeste værdier trækkes fra summen.
> >
> > select sum(some_col) - count(some_col) / 4 as mysum from some_tbl;
> >
> >
> > Jeg prøvede ovenstående, men fik kun: "Resource id #4" tilbage...nogen
der
> > ved hvad det betyder?
> >
> > Selve ovenstående statement funger da heller ikke, da den bare trækker
> > antallet af colonner/4 fra summen, og det er ikke meningen.
> >
> > Men jeg kan prøve at uddybe det:
> >
> > Jeg har en række colonner (tubler er det ikke det de hedder?!?) hvor jeg
> vil
> > have den samlede værdi af alle, fra trukket de højeste værdier. Antallet
> af
> > de højeste værdier der ikke skal medregnes afhænger af antallet af
> kolonner.
> > Helt præcist skal antallet af kolonner / 4 ikke medregnes i det samlede
> > resultat.
> >
> > eks. 1,2,3,4
> >
> > Her skal 4 ikke medregnes i det samlede resultat
> > og 1,2,3,7,4,5,6,8
> >
> > Her skal 7 og 8 ikke medregnes.
> >
> > Kan man lave noget med en sum(select et eller andet order by max() bla
> > bla.....) og så samtidig fortælle at man kun vil have summen udregnet på
> > antallet af kolonner - de højeste (som er en variabel)
> >
> > Lyder det indviklet....Lidt men det virker ret simpelt i mit lille
> hoved*S*
> >
> >
> > Er det muligt at angive hvor mange tubler man vil ha returneret i et
> select?
>
> Jeg er ret træt og kan ikke overskue resten, men hvis du mener antal
rækker
> returneret bør du kigge på sql's limit funktion.
>
> mvh
> Andreas Hjordt
>
>



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408939
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste