1

http://sqlfiddle.com/#!2/b814c/6/0

select listener, SEC_TO_TIME( SUM( TIME_TO_SEC(time))) as total_time, count(listener) as total_listened from db1 where date = "2013-02-20" group by listener

このクエリに db2 値を追加するにはどうすればよいですか?

ネストされたクエリを試しましたが、実行が遅すぎて、db2 リスナーしか表示されません。

何かを変更した場合、異なるデータベースの両方のテーブル。

このサンプルの結果は次のようになります。

LISTENER    TOTAL_TIME  TOTAL_LISTENED
listener1   00:15:39    1
listener2   00:22:59    2
listener3   00:13:34    1
4

2 に答える 2

1

これが元のクエリです

select listener, SEC_TO_TIME( SUM( TIME_TO_SEC(time))) as total_time,
count(listener) as total_listened from db1 where date = "2013-02-20"
group by listener

listenertime列を組み合わせてみてください

次に、その UNION に対して操作を適用します

SET @GivenDate='2013-02-20';
SELECT listener,SEC_TO_TIME( SUM( TIME_TO_SEC(time))) as total_time,
COUNT(listener) as total_listened
FROM
(
    SELECT listener,time FROM db1
    where date = @GivenDate
    UNION ALL
    SELECT listener,time FROM db2
    where date = @GivenDate
) A GROUP BY listener;
于 2013-02-19T22:45:26.923 に答える
1

何方をお探しですか?

select listener, SEC_TO_TIME( SUM( TIME_TO_SEC(time))) as total_time, count(listener) as total_listened from 
(
  SELECT * FROM db1
  UNION ALL
  SELECT * FROM db2
) A
where date = "2013-02-20" group by listener

SQL フィドルのデモ

于 2013-02-19T22:46:27.017 に答える