博客
关于我
SQL必知必会 第10课 分组数据
阅读量:179 次
发布时间:2019-02-28

本文共 694 字,大约阅读时间需要 2 分钟。

数据分组与过滤

在数据分析中,合理的分组和过滤是提升效率的关键步骤。以下是关于SQL分组的详细指导。

10.2 创建分组

GROUP BY子句用于将数据按指定字段分组。以下示例展示了如何按vend_id分组并计算每个供应商的产品数量:

select vend_id, count(*) as num_prodsfrom productsgroup by vend_id;

10.3 过滤分组

对于分组后的数据,HAVING子句用于进行组级过滤。要过滤出订单数超过2的客户,可以使用以下查询:

select cust_id, count(*) as ordersfrom ordersgroup by cust_idhaving count(*) >= 2;

10.4 分组与排序

GROUP BY和ORDER BY的主要区别在于作用时间和排序方式。

特性 GROUP BY ORDER BY
作用 分组数据 排序输出
可用字段 只能使用选择列或表达式 可以使用任何字段
是否需要 不需要 可选

在使用GROUP BY时,建议配合ORDER BY子句使用,以确保输出的数据按指定顺序排列。

10.5 SELECT子句顺序

SELECT子句中的子句顺序不影响结果,但理解每个子句的作用对写出高效查询至关重要。

子句 说明 是否必须使用
SELECT 返回的列或表达式
FROM 数据源表 仅在选择数据时使用
WHERE 行级过滤
GROUP BY 分组说明 仅在需要聚集时使用
HAVING 组级过滤
ORDER BY 排序 可选

通过合理配置这些子句,可以高效地组织和分析数据。

转载地址:http://jgpn.baihongyu.com/

你可能感兴趣的文章
Netty工作笔记0050---Netty核心模块1
查看>>
Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
查看>>
Netty常见组件二
查看>>
netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
查看>>
Netty核心模块组件
查看>>
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>
Netty源码—2.Reactor线程模型一
查看>>
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Netty相关
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
Net与Flex入门
查看>>