Więc jestem trochę zakłopotany tutaj, mam setup stół jak tenLimit SQL przez sumę wartości rzędu za
+-----------+------+
| Timestamp | Size |
+-----------+------+
| 1-1-13 + 10.3 +
+-----------+------+
| 1-3-13 + 6.7 +
+-----------+------+
| 1-5-13 + 3.0 +
+-----------+------+
| 1-9-13 + 11.4 +
+-----------+------+
I zastanawiam się, czy jest jakiś sposób, aby uruchomić kwerendę takiego
SELECT * FROM table ORDER BY timestamp ASC LIMIT BY (SUM(size) <= 20.0);
ten powinien chwycić pierwsze trzy wiersze, ponieważ suma wielkości w pierwszych 3 rzędach wynosi 20. jednak nie zawsze może być 3 rzędy, że równy 20. Czasami pierwszy rząd może ma wartość 20, i w takim przypadku powinna przechwycić tylko pierwszą.
Jestem już świadomy, że to jest możliwe, aby szybko obliczyć sumę w PHP po uruchomieniu zapytania, ale staram się to osiągnąć tylko z MySQL.
Więc chcesz uruchomioną sumie? –
W języku ANSI SQL wybieramy wiersze pewnej tabeli (relacji) w oparciu o kryteria, które są dopasowane dla KAŻDEGO POJEDYNCZEGO WIERSZA wyjścia. W twoim przykładzie kryteria zmieniają się przy każdym nowym wierszu. Nie jestem pewien, ale myślę, że będzie to wymagać funkcji PL/SQL. Zwróć uwagę, jak działa ORDER - w zależności od użycia podkwerendy, otrzymasz różne wyniki, w zależności od tego, czy chcesz sortować dane wyjściowe, czy też dane wejściowe, które mają być dopasowane pod twoim warunkiem, a ORDER nie powinien być używany w ten sposób. LIMIT (lub OFFSET) prawdopodobnie ma być użyty do prostego ograniczenia liczby wierszy na wyjściu, a nie przez wyrażenie. –