mysql总和中的问题

时间:2013-03-06 06:58:56

标签: mysql sql

我有2个查询,如下所示,查找每月股票的平均价格

query1:从上午9:30到下午1:30的一个月的平均价格

query2:从上午1:30到下午2:30的一个月的平均价格

我需要划分差异和价格变化百分比

QUERY1

--- 9.30 to 1.30 prices ---

select DATE_FORMAT(transact_time,'%Y %M %d'),sum(price*qty)/sum(qty) 
from trades1
where symbol='GREG.N0000'
and transact_time between '2013-01-01' and '2013-01-31'
and DATE_FORMAT(transact_time,'%T') between  '09:30:00' and '13:30:00'
group by DATE_FORMAT(transact_time,'%Y %M %d')

QUERY2

--- 1.30 TO 2.30 prices ---

SELECT DATE_FORMAT(transact_time,'%Y %M %d'),SUM(price*qty)/SUM(qty) 
FROM trades1
WHERE symbol='GREG.N0000'
AND transact_time BETWEEN '2013-01-01' AND '2013-01-31'
AND DATE_FORMAT(transact_time,'%T') BETWEEN  '13:30:00' AND '14:30:00'
GROUP BY DATE_FORMAT(transact_time,'%Y %M %d')

我需要区分query1的结果和query2的结果以及价格变化百分比。有人请帮帮我。

1 个答案:

答案 0 :(得分:1)

你在找这个:

SELECT p1 - p2 , p2 /p1 FROM
(select DATE_FORMAT(transact_time,'%Y %M %d') d1,sum(price*qty)/sum(qty) p1
from trades1
where symbol='GREG.N0000'
and transact_time between '2013-01-01' and '2013-01-31'
and DATE_FORMAT(transact_time,'%T') between  '09:30:00' and '13:30:00'
group by DATE_FORMAT(transact_time,'%Y %M %d')) t1 JOIN
(
SELECT DATE_FORMAT(transact_time,'%Y %M %d') d2,SUM(price*qty)/SUM(qty) p2
FROM trades1
WHERE symbol='GREG.N0000'
AND transact_time BETWEEN '2013-01-01' AND '2013-01-31'
AND DATE_FORMAT(transact_time,'%T') BETWEEN  '13:30:00' AND '14:30:00'
GROUP BY DATE_FORMAT(transact_time,'%Y %M %d')) t2 ON t1.d1 = t2.d2