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会进行提醒。

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

  • 相关阅读:
    「BZOJ 1297」「SCOI 2009」迷路「矩阵乘法」
    「BZOJ 1831」「AHOI 2008」逆序对「贪心」
    「BZOJ 1791」「IOI 2008」Island「基环树」
    WC2019 冬眠记
    「ZOJ 1354」Extended Lights Out「高斯消元」
    「BZOJ 3270」博物馆「高斯消元」
    「学习笔记」泰勒级数
    获取iPhone的UDID
    面试题
    Java的post(HTTPS)请求-----接口测试
  • 原文地址:https://www.cnblogs.com/com-xiaolanchong/p/12744738.html
Copyright © 2011-2022 走看看