# SQL, nur jeder 5. Datensatz



## PollerJava (4. Aug 2007)

Hallo,

Ich Habe in meiner Datenbank eine Tabelle mit 2 Spalten und sehr vielen Zeilen und frage diese Tabelle momentan so ab:


```
rs = stmt.executeQuery("SELECT * FROM " + name + " WHERE spalte1 > ....
```

ich möchte jetzt aber nur jeden 5. Datensatz abfrage (also jede 5. Zeile), bzw. in weiterer Folge möchte ich aus 5 Zeilen den AVG bilden und diesen dann aus der Datenbank auslesen, da ich sonst zu viele Datensätze bekomme,

Geht das irgendwie bzw. wie könnte das gehen?


Vielen Dank für die Antworten,

lg


----------



## The_S (4. Aug 2007)

Was jetzt? Jeden 5. Datensatz oder den AVG? Das isn unterschied ... Ham die Datensätze irgendeine ID bzw. Fortlaufende Nummer?


----------



## masta // thomas (4. Aug 2007)

Ich würde eher mit LIMIT und ORDER arbeiten. Leider hast du nicht dazugeschrieben, mit welcher Datenbank du arbeitest - in MySQL nimmst du ORDER BY RAND(), um die Ergebnisse nach Zufall zu sortieren.
Übrigens kannst du den AVG auch via SQL Statement berechnen.


----------



## PollerJava (4. Aug 2007)

Ich arbeite mit FireBird,


ich möchte den AVG() von 5. Datensätzen (Zeilen) berechnen und diesen dann auslesen;


lg und vielen Dank für die Antworten,,


----------



## The_S (6. Aug 2007)

Also 4 Zeilen überspringen, 5. Zeile nehmen, dort denn Mittelwert aus allen spalten berechnen, wieder 4 Zeilen überspringen, 5. Zeile nehmen, ...!?


----------



## PollerJava (6. Aug 2007)

und wie kann ich das in SQL machen -> 4 Zeilen überspringen, mit WHERE gehts nicht, da ich nicht weiß, in welchen Bereich die Werter liegen,
ich müsste also dezitiert angeben, dass nur jede 5 Zeile genommen wird,

lg


----------



## miketech (6. Aug 2007)

Hi,

also ich könnte mir sowas vorstellen:

"SELECT A,B,fortlaufendeNummer FROM Table WHERE A=x and B=y and (fortlaufendeNummer mod 5 = 0)";

Jetzt müsstest Du noch schauen, wo Du die fortlaufende Nummer herbekommst. Entweder Du hast sie in Deiner DB sowieso oder Du findest irgendeine SQL-Anweisung bei Select, die in der Lage ist das Ergebnis durchzunummerieren. Sowas wie:

"SELECT A,B,counter() as fortlaufendeNummer FROM Table WHERE A=x and B=y and (fortlaufendeNummer mod 5 = 0)";

Gruß

Mike


----------



## masta // thomas (6. Aug 2007)

http://www.spotlight-wissen.de/lisp/pages/messages/asql-1176294879-24352


----------



## miketech (7. Aug 2007)

Nice. Noch ein mod 5 dazu, dann sollte das doch klappen.

Gruß

Mike


----------



## PollerJava (7. Aug 2007)

vielen DANK!!!


----------

