![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 5.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam następujący problem. W systemie zaimplementowane są oddzielne tablice z danymi dla każdego miesiąca. W każdej tablicy mamy pola duration, destination, end. chciałbym wykonać następujące zapytanie: SELECT ROUND(AVG(sum_duration)) FROM ( SELECT SUM(duration)/60 AS sum_duration FROM table_02_2011 WHERE destination REGEXP '^[1-9][0-9]{7,}' AND UNIX_TIMESTAMP(DATE_SUB(CURDATE(),INTERVAL 30 DAY)) <= end AND (WEEKDAY(FROM_UNIXTIME('end')) >= 0 AND WEEKDAY(FROM_UNIXTIME('end')) <= 4 ) GROUP BY DATE(FROM_UNIXTIME('end')) ) AS sum_query; Na jednej tablicy działa, ale jak zrobić aby dokonać obliczeń na dwóch lub więcej tablicach? Napewno nie da się zrobić tak że policzyć średnią z jednej tablicy, średnią z drugiej, zsumować i podzielić na dwa, ponieważ wtedy straci się realną średnią z interesującego mnie okresu. danych w tablicy będzie sporo zatem nie wiem czy w grę wchodzi tworzenie jakieś tabeli tymczasowej. pozdrawiam Ten post edytował daroj 5.03.2011, 12:32:25 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dobrze zrozumiałem, to chcesz mieć średnie z każdego miesiąca. Możesz zawsze użyć UNION SELECT.
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:35 |