最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL單表查詢的排序、聚合、分組操作

 更新時(shí)間:2026年01月06日 09:40:57   作者:啦啦啦0526  
本文主要介紹了SQL單表查詢的排序、聚合、分組等操作,包括排序查詢、聚合函數(shù)和分組查詢的使用方法和示例,最后總結(jié)了SQL查詢的順序書(shū)寫(xiě)和執(zhí)行順序,感興趣的朋友跟隨小編一起看看吧

一、引言

今天主要講一講昨天剩下的排序、聚合、分組等單表查詢的一些操作.

二、單表查詢

1.排序查詢

知識(shí)點(diǎn):

排序查詢關(guān)鍵字: order by

排序查詢基礎(chǔ)格式: select 字段名 from 表名 order by 排序字段名 asc|desc;

asc : 升序(默認(rèn)) desc: 降序

進(jìn)階格式: select 字段名 from 表名 order by 排序字段1名 asc|desc , 排序字段2名 asc|desc;

注意: 如果order by后跟多個(gè)排序字段,先按照前面的字段排序,如果有相同值的情況再按照后面的排序規(guī)則排序

-- 示例1:查詢所有商品,并按照評(píng)分從高到低進(jìn)行排序

SELECT * FROM products ORDER BY score DESC;

-- 示例2:查詢所有商品,先按照評(píng)分從高到低進(jìn)行排序,評(píng)分相同的按照價(jià)格從低到高排序 SELECT * FROM products ORDER BY score DESC, price;

2.聚合函數(shù)

知識(shí)點(diǎn):

聚合函數(shù): 又叫統(tǒng)計(jì)函數(shù),也叫分組函數(shù)

常用聚合函數(shù): sum( )         count( )         avg( )         max( )         min( )

聚合查詢基礎(chǔ)格式: select         聚合函數(shù)(字段名)         from         表名;

注意: 此處沒(méi)有分組默認(rèn)整個(gè)表就是一個(gè)大的分組

注意: 聚合函數(shù)(字段名)會(huì)自動(dòng)忽略null值,以后統(tǒng)計(jì)個(gè)數(shù)一般用count(*)統(tǒng)計(jì)因?yàn)樗粫?huì)忽略null值

示例:

# 注意: 別名不建議用中文,以下僅僅為了演示
-- 示例1:統(tǒng)計(jì)當(dāng)前商品一共有多少件
SELECT count(id) FROM products;
SELECT count(*) FROM products;
-- 示例2:對(duì)商品評(píng)分列進(jìn)行計(jì)數(shù)、求最大、求最小、求和、求平均
SELECT
    COUNT(score) AS cnt,
    MAX(score) AS max_score,
    MIN(score) AS min_score,
    SUM(score) AS total_score,
    AVG(score) AS avg_score
FROM products;
-- 示例3:統(tǒng)計(jì)所有非自營(yíng)商品評(píng)分的平均值
SELECT
    is_self,
    AVG(score)
FROM
    products
WHERE
    is_self = '非自營(yíng)';

3.分組查詢

分組查詢關(guān)鍵字: group by

分組查詢基礎(chǔ)格式: select 分組字段名,聚合函數(shù)(字段名) from 表名 group by 分組字段名;

注意: select后的字段名要么在group by后面出現(xiàn)過(guò),要么寫(xiě)到聚合函數(shù)中,否則報(bào)錯(cuò).

分組查詢進(jìn)階格式: select 分組字段名,聚合函數(shù)(字段名) from 表名 [where 非聚合條件] group by 分組字段名 [having 聚合條件];

where和having的區(qū)別?

書(shū)寫(xiě)順序: where在group by 前,having在group by后

執(zhí)行順序: where在分組前,having在分組后

分組函數(shù): where后不能跟聚合條件,只能跟非聚合條件,having后可以使用聚合條件,也可以使用非聚合條件(不建議)

應(yīng)用場(chǎng)景: 建議大多數(shù)過(guò)濾數(shù)據(jù)都采用where,只有當(dāng)遇到聚合條件的時(shí)候再使用having

使用別名: where后不能使用別名,having后可以使用別名

-- 示例1:統(tǒng)計(jì)每個(gè)分類的商品數(shù)量
SELECT
    category_id,
    -- ② 再聚合:對(duì)每一組的id進(jìn)行count計(jì)數(shù)
    COUNT(id) AS cnt
FROM products
-- ① 先分組:按照category_id進(jìn)行分組
GROUP BY category_id;
-- 示例2:統(tǒng)計(jì)每個(gè)分類中自營(yíng)和非自營(yíng)商品的數(shù)量
SELECT
    category_id,
    is_self,
    COUNT(id) AS cnt
FROM products
GROUP BY category_id, is_self;
-- 示例3:統(tǒng)計(jì)每個(gè)分類商品的平均價(jià)格,并篩選出平均價(jià)格低于1000的分類
SELECT category_id,
       -- 再聚合
       AVG(price)
FROM products
-- 先分組
GROUP BY category_id
-- 對(duì)分組聚合的結(jié)果進(jìn)行篩選
HAVING AVG(price) < 1000;

4.limit查詢

知識(shí)點(diǎn):

分頁(yè)查詢關(guān)鍵字: limit

分頁(yè)查詢基礎(chǔ)格式: select 字段名 from 表名 limit x,y;

                x: 起始索引,默認(rèn)從0開(kāi)始 x = (頁(yè)數(shù)-1)*y

                y: 本次查詢的條數(shù)

注意: limit能完成topN需求,但是不能考慮到并列情況,此問(wèn)題可以使用后期學(xué)習(xí)的開(kāi)窗函數(shù)解決

示例:

- 示例1:獲取所有商品中,價(jià)格最高的商品信息
SELECT
    *
FROM products
ORDER BY price DESC
LIMIT 1; -- LIMIT 0, 1;
-- 示例2:將商品數(shù)據(jù)按照價(jià)格從低到高排序,然后獲取第2頁(yè)內(nèi)容(每頁(yè)3條)
SELECT
    *
FROM products
ORDER BY price
LIMIT 3, 3;
-- 示例3:當(dāng)分頁(yè)展示的數(shù)據(jù)不存在時(shí),不報(bào)錯(cuò),只不過(guò)查詢不到任何數(shù)據(jù)
SELECT * FROM products LIMIT 20, 10;

5.SQL順序

書(shū)寫(xiě)順序: SELECT -> DISTINCT -> 聚合函數(shù) -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> LIMIT

執(zhí)行順序: FROM -> WHERE -> GROUP BY -> 聚合函數(shù) -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT

大家記住最后這個(gè)執(zhí)行順序就好,前面的各種格式都是根據(jù)這個(gè)來(lái)的.

三、結(jié)語(yǔ)

今天就先講這么多吧,下次給大家講用python操作MySql.

到此這篇關(guān)于SQL單表查詢?nèi)ヂ裕号判蚓酆戏纸M的文章就介紹到這了,更多相關(guān)sql單表查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

铜川市| 漯河市| 德清县| 西丰县| 德格县| 湟源县| 蓝山县| 靖西县| 叶城县| 深泽县| 和平县| 盐津县| 甘孜县| 巨野县| 布拖县| 门源| 天台县| 松阳县| 丹东市| 于都县| 勃利县| 嘉义县| 衡阳县| 孙吴县| 白银市| 应用必备| 吉安县| 永和县| 肃北| 唐山市| 焦作市| 和林格尔县| 宣汉县| 麻江县| 宁南县| 都安| 竹山县| 江山市| 教育| 衡水市| 江油市|