首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL连接排序数据,分组数据

问MySQL连接排序数据,分组数据
EN

Stack Overflow用户
提问于 2015-06-16 22:33:49
回答 2查看 67关注 0票数 1

我有两张桌子:

twitterusers用户表

​

twittergrowth表

​

我试图连接这两个表,从twitteruser获取所有字段,从twittergrowth获取选择性字段,然后从这些数据中获取最后3行。

预期输出:

​

电流输出:

​

也就是说,这些行在重复。我想要由ID或用户名和最后一组时间戳组成的唯一行。因此,这将是最后的3行,其中有最近的时间戳。

我可以输入的代码是:

代码语言:javascript
复制
SELECT 
  t1.*,
  t2.new_followers_count,
  t2.new_friends_count,
  t2.new_timestamp     
FROM twitterusers t1 
JOIN twittergrowth t2 on (t1.username=t2.username)

搜索了相当多的网页/网站,但实际上无法找到如何做到这一点。我很感谢你的帮助。:)

此外,我希望将一个LIMIT参数添加到最终结果中,这样就可以对整个结果进行分页。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-17 00:42:54

首先,您需要在new_timestamp表中相同的user_id和username的组中找到最大的twittergrowth (最新)。这是一个典型的按组划分的最大问题,子查询tgmax就是这样做的。然后,您需要返回相同的表(这次是tg),以获得其他列,这些列不在子查询的group子句中,并且不用于聚合函数(如max())。这些列是new_followers_count和new_friends_count。

如果尝试将它们放入子查询的选择中,mysql将从同一组中返回来自未指定行的值,而不一定与具有最新时间戳的行返回值。这是解释这里。

一旦您获得twittergrowth表的期望输出,只剩下加入twitterusers表来获取所有其他列。

代码语言:javascript
复制
SELECT tu.*, tg.new_followers_count, tg.new_friends_count, tg.new_timestamp
FROM twitterusers tu
JOIN twittergrowth tg
  ON tu.user_id = tg.user_id AND tu.username = tg.username
JOIN 
  ( SELECT tgg.user_id, tgg.username, max(tgg.new_timestamp) as latest_timestamp 
    FROM twittergrowth tgg
    GROUP BY tgg.user_id, tgg.username ) tgmax
  ON tg.user_id = tgmax.user_id AND tg.username = tgmax.username
    AND tg.new_timestamp = tgmax.latest_timestamp

请注意,此查询将受益于(user_id,username,new_timestamp)表中的twittergrowth复合索引。

票数 1
EN

Stack Overflow用户

发布于 2015-06-16 22:37:40

您需要按组来实现预期的输出。

代码语言:javascript
复制
GROUP BY id

要限制结果或将结果拆分为页面,只需添加LIMIT X,Y,其中X是起始记录,Y是记录总数。

因此,查询以获取所需的预期结果,但只有前10项如下所示:

代码语言:javascript
复制
SELECT 
  t1.*,
  t2.new_followers_count,
  t2.new_friends_count,
  t2.new_timestamp     
FROM twitterusers t1 
JOIN twittergrowth t2 on t1.username=t2.username 
GROUP BY t1.id
LIMIT 0,10
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30879406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档