SQL: グループ フィルタリングを実装する必要があることを使用する

SQL: グループ フィルタリングを実装する必要があることを使用する


序文

多くの友人がデータベースの検索を実行している場合、グループ フィルタリングが必要な状況に遭遇します。

例: 各学校ユーザーの平均投稿数と返信数をチェックし、重要な操作のために活動の少ない学校を見つけたい場合、平均投稿数が 5 未満の学校、または平均返信数が少ない学校を選択してください。 20校以上。

この記事では、この例を分析し、主に having 関数の使用法を紹介します。

リンクの例: SQL19 グループ フィルタリングの演習


1.持つことの紹介

使い方:集計関数の結果をフィルター条件とする場合、whereは使えず、having構文を使い、リネームで使う

詳細については、以下を参照してください: GROUP BY および HAVING の使用法 概要
データベース クエリ ステートメント – HAVING の使用法

2. 利用分析

//数据库表结构
id	device_id	gender	age	university	gpa	active_days_within_30 question_cnt answer_cnt
1	2138	male	21	北京大学	3.4	7	2	12
2	3214	male   null 复旦大学 4.0	15	5	25
3	6543	female	20	北京大学	3.2	12	3	30
4	2315	female	23	浙江大学	3.6	5	1	2
5	5432	male	25	山东大学	3.8	20	15	70
6	2131	male	28	山东大学	3.3	15	7	13
7	4321	female	26	复旦大学	3.6	9	6	52
//搜索语句
select 
	university,
	avg(question_cnt) as avg_question_cnt,
	avg(answer_cnt) as avg_answer_cnt
from user_profile
group by university
having avg_question_cnt < 5 or avg_answer_cnt < 20

おすすめ

転載: blog.csdn.net/qq_46119575/article/details/129827540