Bạn sẽ sử dụng câu lệnh nào để lọc dữ liệu trong MySQL?

SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
6 là một công cụ sửa đổi được sử dụng trên một hàm tổng hợp để giới hạn các giá trị được sử dụng trong một hàm tổng hợp. Tất cả các cột trong câu lệnh chọn không được tổng hợp phải được chỉ định trong mệnh đề
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
7 trong truy vấn

Quay trở lại phần trước, khi chúng tôi làm việc với các tập hợp, chúng tôi đã sử dụng hàm tổng hợp

SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
1 để tìm quy mô giao dịch trung bình. Nếu chúng ta muốn biết giá trị trung bình của các giao dịch mà mỗi nhân viên bán hàng giành được từ mức trung bình cao nhất đến thấp nhất, truy vấn sẽ như sau

SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
sales_agentavgElease Gluck3614. 9375Darcel Schlecht3304. 3381088825213Rosalina Dieter3269. 4861111111113Võng Daniell3194. 9912280701756James Ascencio3063. 2074074074076 Rosie Papadopoulos 2950. 8846153846152Wilburn Farren2866. 181818181818Lươi sậy2827. 974193548387Donn Cantrell2821. 8987341772154

Chúng tôi thậm chí có thể xác định giá trị trung bình của các giao dịch do người quản lý tổng hợp bằng cách chạy một truy vấn có liên kết như thế này

SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
quản lýavgDustin Brinkmann1465. 0107095046853Summer Sewald2372. 886473429952Melvin Marxen2553. 2086167800453Cara Losch2354. 26875Celia Rouche2629. 339344262295Rocco Neubert2837. 257597684515

Mặc dù SQL không bắt buộc, nhưng bạn nên đưa tất cả các cột không tổng hợp từ mệnh đề

SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
2 vào mệnh đề
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
7 của mình. Nếu không, có những trường hợp truy vấn sẽ trả về kết quả mong muốn, cũng có những trường hợp một giá trị ngẫu nhiên từ hàng không tổng hợp sẽ được sử dụng làm đại diện cho tất cả các giá trị mà truy vấn trả về

Ví dụ: giả sử bạn muốn biết giao dịch trung bình của đại lý bán hàng cho từng khách hàng của họ. Nếu bạn đã sử dụng truy vấn

SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY sales_agent

bạn sẽ lấy lại bảng sau hiển thị từng đại lý bán hàng một lần và chọn một giá trị ngẫu nhiên từ các tài khoản mà người bán hàng đó giành được

đại lý bán hàng. tài khoản. Tổng. . -. -. . Anna Snelling. giữ sinh học. 275,056. . Boris Faz. Mathtouch. 261,631. . cải xoong. Sumace. 450,489. . Cecily Lampkin. giàn khoan. 229.800. . Mỹ phẩm Corliss. Tập đoàn Zen. 421,036. . Daniell Võng. Zathunicon. 364,229. . Darcel Schlecht. chủ nghĩa. 1.153.214. . Donn Cantrell. Công ty Bluth. 445.860. . Elease Gluck. Công nghệ Dalt. 289,195. . Garret Kinder. Konex. 197,773

Để có được giao dịch trung bình của đại lý bán hàng cho mỗi tài khoản, truy vấn sẽ như thế này

SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent, account
 ORDER BY sales_agent, account

Một số hàng đầu tiên của bảng được trả về sẽ trông như thế này

sales_agentaccountsumAnna SnellingBetatech11,340Anna SnellingBioholding12,382Anna SnellingCancity1,496Anna SnellingCodehow22,479Anna SnellingCondax1,572Anna SnellingConecom4,186Anna SnellingDomzoom6,639Anna SnellingDontechi5,578Anna Snelling5,6Funholding1,762

Nếu bạn muốn tinh chỉnh truy vấn của mình hơn nữa bằng cách chạy các tập hợp của bạn dựa trên một tập hợp giới hạn các giá trị trong một cột, bạn có thể sử dụng từ khóa

SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
6. Ví dụ: nếu bạn muốn biết cả số lượng giao dịch mà đại lý bán hàng giành được và số lượng giao dịch đó có giá trị lớn hơn 1000, bạn có thể sử dụng truy vấn

SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent

Một số hàng đầu tiên của bảng kết quả sẽ trông như thế này

sales_agenttotalover 1000Boris Faz10170Maureen Marcano14996Vicki Laflamme221111Donn Cantrell158106Jonathan Berthelot17174Wilburn Farren5538Elease Gluck8032Cassey Cress163112James Ascencio13588Kami Bicknell17478Anna Snelling20868landViolet

Như chúng ta đã thấy trong phần các hàm tổng hợp,

SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
5 cũng giới hạn các giá trị trong một truy vấn để chạy một hàm tổng hợp.
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
6 linh hoạt hơn
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
5 vì bạn có thể sử dụng nhiều hơn một công cụ sửa đổi
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
6 trong một truy vấn tổng hợp trong khi bạn chỉ có thể sử dụng một mệnh đề
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
5

Ví dụ

SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
0

Một số hàng đầu tiên được trả về bởi truy vấn trên sẽ giống như

sales_agentnumber wonnumber > 1000trung bình của tất cả > 1000Rosalina Dieter72303,269. 497,537. 83Daniell Võng114913,194. 9993.869. 47Gladys Colclough135882,560. 553,791. 19Rosie Papadopoulos78492,950. 8854.559. 16Kary Hendrixson209982,173. 6754,071. 13Cecily Lampkin107632,147. 6653,439. 74Lajuana Vencill127491,532. 543,262. 94Markita Hansen130682,529. 174,512. 37Moses Frase129511,606. 0673.441. 45Darcel Schlecht3492723,304. 344,115. 04Hayden Neloms107822,543. 093.215. 06Lươi sậy1551102,827. 973.808. 98Zane Levy161992,671. 234,038. 43Garret Kinder75462,636. 974,041. 37Niesha Huffines105561,685. 342,747. 96

Bài tập (Tiếp theo phần trước)

Có hai cách để thực hiện các bài tập này. Đầu tiên là sử dụng các liên kết “Thử truy vấn” để kiểm tra các truy vấn của bạn mà không lưu chúng. Thứ hai là tạo một dữ liệu. dự án thế giới và lưu các truy vấn của bạn vào đó. Nếu bạn đang đọc tài liệu này và hoàn thành các bài tập dưới dạng hướng dẫn, bạn sẽ cần tạo dự án của riêng mình để lưu công việc của mình. Chi tiết và hướng dẫn có trong hướng dẫn SQL có hướng dẫn thiết lập dự án của bạn và liên kết đến tất cả các bài tập hiện tại

bài tập 27

Viết truy vấn trả về cột bệnh nhân và số lượng tất cả các bệnh dị ứng mà bệnh nhân mắc phải từ bảng dị ứng. Nhóm các kết quả của bạn theo bệnh nhân và sắp xếp chúng theo số lượng dị ứng từ lớn nhất đến ít nhất

thử truy vấn

Gợi ý

SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
2 cột
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY sales_agent
1
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
1 của cột
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
1 được dán nhãn lại
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
2
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
3
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent, account
 ORDER BY sales_agent, account
6 một
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY sales_agent
2 của cột
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
1 được dán nhãn lại
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
2
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
8
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent, account
 ORDER BY sales_agent, account
6 và
SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
00 của cột
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
1.
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
6 kết quả chỉ trả về bản ghi
SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
03 cột
SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
04 là
SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
05 và ghi nhãn cột kết quả là
SELECT sales_agent,
       COUNT(sales_pipeline.close_value) AS total,
       COUNT(sales_pipeline.close_value)
FILTER(WHERE sales_pipeline.close_value > 1000) AS `over 1000`
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_pipeline.sales_agent
2
SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
07. Tất cả các cột này nên được chọn
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY sales_agent
4 bảng
SELECT sales_agent,
       AVG(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY AVG(close_value) DESC
09. Hạn chế kết quả của bạn chỉ bao gồm các bản ghi
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
5 cột
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
71
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
72
SELECT sales_teams.manager,
       AVG(sales_pipeline.close_value)
  FROM sales_teams
       JOIN sales_pipeline ON (sales_teams.sales_agent = sales_pipeline.sales_agent)
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_teams.manager
73.
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY sales_agent
6 kết quả
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY sales_agent
7 cột
SELECT sales_agent,
       account,
       SUM(close_value)
  FROM sales_pipeline
 WHERE sales_pipeline.deal_stage = "Won"
 GROUP BY sales_agent
 ORDER BY sales_agent
8

Câu lệnh nào dùng để lọc dữ liệu trong MySQL?

Lệnh SELECT là phương tiện chính để truy xuất dữ liệu từ cơ sở dữ liệu MySQL.

Bạn sẽ sử dụng câu lệnh nào để lọc dữ liệu?

Cú pháp lọc dữ liệu sử dụng WHERE. Việc thêm câu lệnh WHERE vào truy vấn có nghĩa là bảng sẽ được lọc để chỉ những bản ghi thỏa mãn điều kiện sau câu lệnh WHERE mới được trả về.

Câu lệnh nào không được dùng để lọc dữ liệu trong MySQL?

Có mệnh đề không lọc bản ghi mysql.

Cái gì được sử dụng để lọc dữ liệu trong SQL?

Bộ lọc SQL là các chuỗi văn bản mà bạn sử dụng để chỉ định một tập hợp con các mục dữ liệu trong một kiểu dữ liệu nội bộ hoặc cơ sở dữ liệu SQL. Đối với cơ sở dữ liệu SQL và các kiểu dữ liệu nội bộ, bộ lọc là một mệnh đề SQL WHERE cung cấp một tập hợp các phép so sánh phải đúng để một mục dữ liệu được trả về.