加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何在t-sql中使用group with with union

发布时间:2020-12-12 16:30:30 所属栏目:MsSql教程 来源:网络整理
导读:如何在t-sql中使用group with with union?我想通过联合的结果的第一列进行分组,我写了以下sql,但它不起作用.我只是不知道如何引用指定的列(在这种情况下是1)的联合结果. 万分感谢. SELECT *FROM ( SELECT a.id,a.time FROM dbo.a UNION SELECT b.id,b.time F
如何在t-sql中使用group with with union?我想通过联合的结果的第一列进行分组,我写了以下sql,但它不起作用.我只是不知道如何引用指定的列(在这种情况下是1)的联合结果.
万分感谢.
SELECT  *
FROM    ( SELECT    a.id,a.time
          FROM      dbo.a
          UNION
          SELECT    b.id,b.time
          FROM      dbo.b
        )
GROUP BY 1

解决方法

GROUP BY 1

我从来没有认识到GROUP BY支持使用ordinals,只有ORDER BY.无论哪种方式,只有MySQL支持GROUP BY不包括所有列,而不对其执行聚合功能. Ordinals不是推荐的做法,因为如果它们基于SELECT的顺序 – 如果更改,您的ORDER BY(或GROUP BY,如果支持)也是如此.

使用UNION时,不需要在内容上运行GROUP BY – UNION确保重复的内容被删除; UNION ALL更快,因为它不 – 在这种情况下,您将需要GROUP BY …

您的查询只需要:

SELECT a.id,a.time
  FROM dbo.TABLE_A a
UNION
SELECT b.id,b.time
  FROM dbo.TABLE_B b

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读