JavaScript is required

Câu lệnh SQL nào sau đây có cú pháp đúng?

A.
SELECT CustomerName, COUNT(CustomerName) FROM Orders ORDER BY CustomerName
B.
SELECT CustomerName, COUNT(CustomerName) FROM Orders GROUP BY CustomerName
C.
SELECT CustomerName, COUNT(CustomerName) FROM Orders
Trả lời:

Đáp án đúng: B


Câu hỏi này kiểm tra kiến thức về cú pháp câu lệnh SQL, đặc biệt là cách sử dụng hàm COUNT() kết hợp với mệnh đề GROUP BY. * **Phương án A:** `SELECT CustomerName, COUNT(CustomerName) FROM Orders ORDER BY CustomerName` * Sai. Câu lệnh này sử dụng `ORDER BY` nhưng không có `GROUP BY` khi sử dụng hàm `COUNT()`. Trong SQL, nếu bạn sử dụng một hàm tổng hợp (như COUNT, SUM, AVG, MIN, MAX) mà không có mệnh đề `GROUP BY`, bạn chỉ có thể chọn các cột mà bạn đang tổng hợp. Trong trường hợp này, bạn đang chọn `CustomerName` (không được tổng hợp) và `COUNT(CustomerName)`. Do đó, cần phải có `GROUP BY CustomerName` để cho biết cách nhóm các hàng để tính toán COUNT. * **Phương án B:** `SELECT CustomerName, COUNT(CustomerName) FROM Orders GROUP BY CustomerName` * Đúng. Câu lệnh này sử dụng hàm `COUNT(CustomerName)` để đếm số lượng khách hàng, và sử dụng `GROUP BY CustomerName` để nhóm các hàng theo tên khách hàng. Như vậy, mỗi tên khách hàng sẽ chỉ xuất hiện một lần và số lượng tương ứng của nó sẽ được hiển thị. * **Phương án C:** `SELECT CustomerName, COUNT(CustomerName) FROM Orders` * Sai. Câu lệnh này thiếu mệnh đề `GROUP BY`. Khi sử dụng hàm `COUNT()` (hoặc bất kỳ hàm tổng hợp nào khác) với một cột không được tổng hợp (trong trường hợp này là `CustomerName`), bạn phải sử dụng `GROUP BY` để chỉ định cột nào sẽ được nhóm lại. Nếu không có `GROUP BY`, câu lệnh sẽ báo lỗi hoặc trả về một kết quả không mong muốn (ví dụ: chỉ trả về một hàng duy nhất với tổng số lượng khách hàng). Vậy, phương án B là đáp án đúng vì nó tuân thủ đúng cú pháp SQL để sử dụng hàm `COUNT()` kết hợp với `GROUP BY`.

Tổng hợp câu hỏi trắc nghiệm lập trình cơ sở dữ liệu SQL có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.


50 câu hỏi 60 phút

Câu hỏi liên quan