2015-02-08 73 views
1

这里最后15条记录是我的查询:SQL:选择从MySQL分组的行

SELECT temp_table.* 
    FROM 
    (SELECT COUNT(*) as hits_count 
      , date 
     FROM visits 
     GROUP 
      BY date 
    ) as temp_table 
ORDER 
    BY temp_table.date ASC 
LIMIT 15 

我插入新记录到该表中时的用户访问的页面。我需要把他们的日期堆叠起来。它一直工作直到它达到了15天的限制,所以现在它不显示其他日子,它停止在他的极限(15)。为了使它更清晰,假设我已经存储了20天,它只显示了1-15天的时间间隔,但我需要它从db获取间隔5-20,依此类推。

+0

就像一个猜测:对DESC进行排序并将结果逆转 – 2015-02-08 10:29:13

+0

它正在工作,但可以保持结果的升序吗? – 2015-02-08 10:31:01

+0

将您的选择放入子选择中,然后从子选择中选择不同的顺序 – 2015-02-08 10:32:56

回答

0

我认为这是你在找什么:

SELECT temp_table.* FROM (
    SELECT COUNT(*) as hits_count, date FROM visits GROUP BY date 
) as temp_table ORDER BY temp_table.date DESC LIMIT 15 

不知道的限制部分虽然。

+0

与Tomas Kilian推荐的相同。当然,它正在工作,但是有没有一种方法以升序模式获得结果? – 2015-02-08 10:35:25

+0

@RaduDascalu Your'e welcome – 2015-02-08 10:36:39

+0

@RaduDascalu您可以根据您的要求申请'ORDER BY' ASC/DESC。哪里有问题 ? – 2015-02-08 11:26:50