zoukankan      html  css  js  c++  java
  • 你对Group By 的使用是否有误解

    数据库group by 用到的也比较多,单列和聚合计算列放在一起时,进行分组查询操作。

    但是如果没有聚合计算,只有单列进行查询,并且使用 group by语句呢??

    下面进行试验检测,看看结果有什么不同。

    以SQLserver 数据库测试

    首先创建一个test表,只有col1 一列

    CREATE TABLE [dbo].[test1] (
    [col] varchar(255) COLLATE Chinese_PRC_CI_AS NULL
    )

    向其中插入数据

    a
    a
    a
    b
    b
    b
    b
    b
    c
    c
    c
    d

    查询结果

    所有数据都被查询出来

    使用 group by :发现只有四条数据???

    问号??你是否有很多小朋友????

    通过结果,我们很容易发现,group by实现的效果好像和 distinct 相同

     

     其实不难理解,group by 就是要根据 列进行分组,当你有 聚合函数的时候那就给你统计出来聚合函数的结果,当你不要结果的时候,那就只给你进行合并

    虽然效果和distinct相同,但是不建议大家这样使用,让人看了 一脸懵逼,还有就是容易误导新人。

    所以不要所有的sql都带group by  

    1 对新手 不好理解,不如distinct 更直观

    2 容易忽视,导致结果不正确。 可能某天就忘了,为什么加了,从别的地方直接搬过来用了,得到的记过不正确。

    3 可能会影响性能。

    4 如果真的要使用的时候,sql会进行提醒。

    当然 该使用的还是要使用的,只是不要画蛇添足。

  • 相关阅读:
    递归算法的时间复杂度分析
    MongoDB入门简单介绍
    关于用例须要多少文档以及业务用例等等
    Java连接redis的使用演示样例
    C++ String 转 char*
    MySQL和PostgreSQL 导入数据对照
    SSL连接建立过程分析(1)
    XTU OJ 1210 Happy Number (暴力+打表)
    Codeforces Round #258 (Div. 2)[ABCD]
    CreateFont具体解释
  • 原文地址:https://www.cnblogs.com/com-xiaolanchong/p/12744738.html
Copyright © 2011-2022 走看看