Вступить в группу дат - PullRequest
       27

Вступить в группу дат

2 голосов
/ 27 апреля 2011

у меня 3 таблицы;

Таблица 1

id   date
1    1132123123
2    1232342341

etc

Таблица 2

id   date
1    1132123123
2    1232342341

etc

Таблица 3

id   date
1    1132123123
2    1232342341

etc

Все столбцы «дата» являются временными метками Unix.

Я пытаюсь объединить эти 3 таблицы и подсчитать итоги для каждой таблицы, соответственно сгруппированные по:

FROM_UNIXTIME(date, '%m-%d-%Y')

В идеале мне бы хотелось получить такой результат:

formatteddate   t1count   t2count   t3count
04-12-2011      2         2         2
04-13-2011      1         2         3

ПРИМЕЧАНИЕ: результат не соответствует данным примера, но я думаю, что это довольно просто.

Вот что я пробовал до сих пор:

SELECT
  FROM_UNIXTIME(t1.date, '%m-%d-%Y') as t1date,
  FROM_UNIXTIME(t2.date, '%m-%d-%Y') as t2date,
  FROM_UNIXTIME(t3.date, '%m-%d-%Y') as t3date, 
  count(t1.id) as t1count,
  count(t2.id) as t2count,
  count(t3.id) as t3count
FROM
  t1,t2,t3
GROUP BY
  t1date

Запрос даже не загружается. T3 содержит много данных (1 миллион + записей). t1 и t2, не так много.

1 Ответ

3 голосов
/ 27 апреля 2011
select from_unixtime(date,'%m-%d-%Y') as d,
sum(tb=1) as tb1,
sum(tb=2) as tb2,
sum(tb=3) as tb3
from (
select date,1 as tb from t1
union all
select date,2 from t2
union all
select date,3 from t3) as t
group by d
...