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

Làm thế nào để nhóm các hàng tiếp theo (dựa trên một tiêu chí) và sau đó đếm chúng [MySQL]?

Để làm điều đó, tôi đã sử dụng một vài biến, cấu trúc bảng, tôi đã tạo của riêng mình chỉ để thử nghiệm và đó là:

create table abc (id int, name varchar(20),type int);

insert into abc values 
( 1 , 'A'    , 1  ),
( 2 , 'A'    , 2 ),
( 3 , 'B'    , 1  ),
( 4 , 'A'    , 1  ),
( 5 , 'A'    , 4  ),
( 6 , 'A'    , 5  )

truy vấn kết thúc như thế này:

set @a:='';
set @counter:=1;
set @groupby:=0;
select *,count(REPEATED) from (select name,if(@a=name,@counter:[email protected]+1,@counter:=1) as rep,if(@counter=1,@groupby:[email protected]+1,@groupby) as repeated,@a:=name type from abc) as t group by repeated

bạn có thể thấy nó hoạt động trong SQLFIDDLE nếu bạn có bất kỳ câu hỏi nào, hãy cho tôi biết.

Trong SQLFIDDLE




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các mục tìm kiếm và hiển thị trang web PHP

  2. Khóa bàn ở chế độ ngủ đông

  3. Gọi các biến PHP từ bên trong Cơ sở dữ liệu MySQL

  4. Mối quan hệ 'nhiều đến hai'

  5. Khóa duy nhất nào được nhấn với phần chèn của tôi?