我有一张请求表..
user_id no:of_mach time_start req_time
11 3 2012-12-12 09:00:00 2012-12-11 09:00:00
12 4 2012-12-14 08:00:00 2012-12-14 06:00:00
13 4 2012-12-12 09:00:00 2012-12-12 02:00:00
14 2 2013-12-12 07:00:00 2012-12-12 03:00:00
15 2 2012 12-14 08:00:00 2012-12-14 05:00:00
从上表中,我需要获取请求相同time_start的用户的req_time。
重复的time_start是
2012-12-12 09:00:00 by user_id 11,13.
2012-12-14 08:00:00 by user_id 12,15.
现在,他们每个人的请求时间都不同了.. 我想要一个查询,以便它得到我的结果: -
time_start 2012-12-12 09:00:00请求的用户的req_time是: -
2012-12-11 09:00:00
2012-12-12 02:00:00
time_start 2012-12-14 08:00:00请求的用户的req_time是: -
2012-12-14 06:00:00
2012-12-14 05:00:00
我使用过查询: -
SELECT req_time FROM user_req WHERE user_id IN (SELECT o.user_id FROM user_req o INNER JOIN ( SELECT starttime, COUNT( * ) AS dupeCount FROM user_req GROUP BY starttime HAVING COUNT( * ) >1)oc ON o.starttime = oc.starttime) ORDER BY req_time ASC;
这会为所有重复的time_start值打印所有req_time ..
输出将是: -
2012-12-11 09:00:00
2012-12-12 02:00:00
2012-12-14 06:00:00
2012-12-14 05:00:00
我可以使用一个查询来帮助我根据上面解释的每个重复time_start对此req_time进行分组。
然后我可以在java中调用它并将其用于我的程序..
请帮帮我..
答案 0 :(得分:1)
试试这个:
select * from user_req where time_start in
(select time_start
from user_req
group by time_start
having count(time_start) > 1)
order by time_start, req_time
这将返回表中的记录,其中包含time_start
和start_time
排序的多个相同req_time
的计数。如果需要,您可以选择仅使用适当的列名替换select *
。