Announcement

Collapse
No announcement yet.

Ergebnis einer Aggregatfunktion weiterverarbeiten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ergebnis einer Aggregatfunktion weiterverarbeiten

    Ich möchte innerhalb eines Selects zb:

    - die summe einer bestimmten spalte errechnen und anzeigen
    - aus dieser summe die wurzel bilden und anzeigen

    Select sum(spalte) as Summe, sqrt( sum(spalte)) as Wurzel from test


    Kann man die erneute Berechnung sum(spalte) für die Berechnung der Wurzel auf eine Art und Weise einsparen.
    Sowohl mit dem Bezug auf den "as-Namen" 'Summe' als auf den Wert 1 ist es nicht möglich an den bereits ermittelten Wert zu gelangen.

  • #2
    Hi,

    Originally posted by basti01985 View Post
    Select sum(spalte) as Summe, sqrt( sum(spalte)) as Wurzel from test
    das kannst Du über
    Code:
    Select MySum, sqrt( MySum ) from ( select summe(spalte) as MySum from test ) as Data

    HTH,
    Karsten

    Comment


    • #3
      Wozu,

      Der Optimizer in SQL sorgt schon selber dafür, das die Summe nur einmal berechnet wird ...

      Das kannst Du auch daran feststellen, das der Ausführungsplan Deiner Abfrage und der Ausführungsplan der Abfrage von Rumtata die geleichen sind.

      m. a. W. SQL sollte man nur sagen, was man machen will, nicht unbedingt, wie es was machen soll


      Originally posted by basti01985 View Post
      Ich möchte innerhalb eines Selects zb:

      - die summe einer bestimmten spalte errechnen und anzeigen
      - aus dieser summe die wurzel bilden und anzeigen

      Select sum(spalte) as Summe, sqrt( sum(spalte)) as Wurzel from test


      Kann man die erneute Berechnung sum(spalte) für die Berechnung der Wurzel auf eine Art und Weise einsparen.
      Sowohl mit dem Bezug auf den "as-Namen" 'Summe' als auf den Wert 1 ist es nicht möglich an den bereits ermittelten Wert zu gelangen.

      Comment

      Working...
      X