PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

nhóm theo cần thiết trong câu lệnh SQL count (*)?

Lỗi này có ý nghĩa hoàn hảo. COUNT là một hàm "tổng hợp". Vì vậy, bạn cần cho nó biết trường nào cần tổng hợp, trường nào được thực hiện với GROUP BY mệnh đề.

Câu trả lời có lẽ có ý nghĩa nhất trong trường hợp của bạn sẽ là:

SELECT column_a, COUNT(*) FROM my_schema.my_table GROUP BY column_a;

Nếu bạn chỉ sử dụng COUNT(*) , bạn đang yêu cầu trả về số hàng đầy đủ, thay vì tổng hợp theo một điều kiện khác. Yêu cầu của bạn nếu GROUP BY là ẩn trong trường hợp đó, có thể được trả lời bằng:"sort of":Nếu bạn không chỉ định bất kỳ điều gì giống như hỏi:"group by nothing", có nghĩa là bạn sẽ nhận được một tổng hợp lớn, đó là toàn bộ bảng.

Ví dụ:thực thi:

SELECT COUNT(*) FROM table;

sẽ hiển thị cho bạn số hàng trong bảng đó, ngược lại:

SELECT col_a, COUNT(*) FROM table GROUP BY col_a;

sẽ hiển thị cho bạn số lượng hàng mỗi giá trị của col_a . Một cái gì đó như:

    col_a  | COUNT(*)
  ---------+----------------
    value1 | 100
    value2 | 10
    value3 | 123

Bạn cũng nên lưu ý rằng * có nghĩa là đếm mọi thứ . Bao gồm NULL S! Nếu bạn muốn đếm một điều kiện cụ thể, bạn nên sử dụng COUNT(expression) ! Xem tài liệu về các hàm aggragate để biết thêm chi tiết về chủ đề này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql và PHP:currval có phải là một cách hiệu quả để truy xuất id được chèn vào hàng cuối cùng, trong một ứng dụng nhiều người dùng không?

  2. psql:không thể kết nối với máy chủ:Không có tệp hoặc thư mục như vậy (Mac OS X)

  3. Sao chép kết quả từ một dạng xem PostgreSQL trong một DB sang một bảng trong một cơ sở dữ liệu khác

  4. Thời gian chờ của Python psycopg2

  5. Lưu trữ truy vấn chung dưới dạng cột?