欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:數(shù)據(jù)庫 SQL 題目

柚子快報激活碼778899分享:數(shù)據(jù)庫 SQL 題目

http://yzkb.51969.com/

排序和分組

排序使用函數(shù) order by默認(rèn)是升序(ASC),可以使用order by DESC(降序)排列 group by 列名,通過列名分組。 HAVING子句用于在應(yīng)用GROUP BY子句之后篩選分組的結(jié)果。 它通常包含聚合函數(shù),因為篩選條件是基于分組后的統(tǒng)計數(shù)據(jù)。 HAVING子句不能單獨(dú)使用,必須與GROUP BY子句一起使用。 WHERE與HAVING的區(qū)別: WHERE子句在分組之前對數(shù)據(jù)進(jìn)行篩選,而HAVING子句在數(shù)據(jù)分組之后進(jìn)行篩選。 WHERE子句不能包含聚合函數(shù),而HAVING子句可以并且常常包含聚合函數(shù)。 當(dāng)查詢中同時包含WHERE、GROUP BY和HAVING子句時,首先執(zhí)行WHERE子句來過濾記錄,然后執(zhí)行GROUP BY子句進(jìn)行分組,最后執(zhí)行HAVING子句來篩選分組后的結(jié)果

力扣1045:添加鏈接描述

思路

題目中給出兩個表一個用戶id跟買的產(chǎn)品id,另一個表是產(chǎn)品id,要求是我們篩選出買了所有產(chǎn)品的用戶id,我一開始的想法是現(xiàn)在產(chǎn)品表中統(tǒng)計出所有的產(chǎn)品數(shù)量,然后在第二個表中統(tǒng)計出用戶買的數(shù)量然后相等可以得出,但是沒有地方能讓這兩個表通過聚合函數(shù)查詢出來的值判斷是否相等,在我看了別人題解后恍然大悟,可以在Having子句中對我們group by分組后的進(jìn)行篩選,在這里可以使用子查詢?nèi)缓笈袛?/p>

select customer_id

from customer

group by customer_id

having count(distinct(product_key) ) = (select count(*) from Product)

聚合函數(shù)

聚合函數(shù)包括:AVG(),SUM(),COUNT(),MAX(),MIN()

力扣1211:力扣1211

思路

題目中需要求平均值個和一個比值,其中第一個平均值比較好計算,我們通過group by 分組后計算他的平均值,但是需要保留兩位小數(shù),我么通過round(number,小數(shù)位數(shù))來處理;求的第三列是一個占比的問題,一開始我想通過先查出<3的求出來單獨(dú)做一個表,然后鏈接去做,但是不能達(dá)到效果,查看題解后發(fā)現(xiàn)了解決辦法,題解中提供了SUM(if(rating<3,1,0)),他在聚合函數(shù)SUM中寫了一個條件表達(dá)式: if(rating<3,1,0):這是一個條件表達(dá)式,當(dāng) rating 小于 3 時,返回 1,否則返回 0,通過這個我們得到了<3的數(shù)量,然后與count(*)做比值即可;同時還出現(xiàn)了一個錯誤,就是使用group by分組時沒有去判斷空值的情況也會導(dǎo)致出錯,使用 having query_name is not null去除空值的情況

select q1.query_name ,

round(avg(rating/position),2)as quality,

round(sum(if(rating<3,1,0))/count(rating)*100,2)

as poor_query_percentage

from Queries as q1

group by q1.query_name

having query_name is not null;

之后我又發(fā)現(xiàn)了另一只求第三列的方法使用avg(rating<3)當(dāng)<3的時候返回一個1,最后求平均值時除以總的數(shù)量

select q1.query_name ,round(avg(rating/position),2)as quality,

round(avg(rating<3)*100,2)as poor_query_percentage

from Queries as q1

group by q1.query_name

having query_name is not null;

總結(jié):

使用聚合函數(shù)時可以在聚合函數(shù)中添加條件語句來進(jìn)行篩選達(dá)到所想的效果,同一個結(jié)果可以有不同的方式得到。使用round(number,3)來控制小數(shù)點(diǎn)的位數(shù)聚合函數(shù)中IF(rating>3,1,0)的含義時>3的時候返回1,否則返回0

索引

數(shù)據(jù)庫中索引是一種可以加快查詢的數(shù)據(jù)結(jié)構(gòu),一般主鍵是索引也可以自己添加索引:

alter table 表名

add index index_name(列名)

唯一索引(數(shù)據(jù)不重復(fù))

alter table xxx

add unique index index_name(列名)

索引是允許存在重復(fù)的,但是數(shù)據(jù)重復(fù)率越低,索引的效率越高 一個表中索引不是越多越好,因為當(dāng)我們在增刪改的時候會去維護(hù)索引,索引太多會增大系統(tǒng)資源開支。

連接

柚子快報激活碼778899分享:數(shù)據(jù)庫 SQL 題目

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19378675.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄