Mysql
 sql >> Baza danych >  >> RDS >> Mysql

numer_wiersza o kilka kolumn

Niestety nie wierzę, że MySQL zapewnia funkcje analityczne, których próbujesz użyć, np. ROWNUMBER() OVER PARTITION;

Nie oznacza to jednak, że nie można go wyprowadzić za pomocą innych środków. Spróbuj:

create table myTable (type varchar(50) not null,id int(10) unsigned not null,
date1 varchar(10) default null,date2 varchar(10) default null,diff int unsigned default null
);

insert into myTable (type,id,date1,date2,diff) values ('blue',1,'x1','xxx',18);
insert into myTable (type,id,date1,date2,diff) values ('blue',1,'x2',null,null);
insert into myTable (type,id,date1,date2,diff) values ('red',1,'x1',null,null);
insert into myTable (type,id,date1,date2,diff) values ('blue',2,'x1','xx',15);
insert into myTable (type,id,date1,date2,diff) values ('blue',2,'x2','xx',18);
insert into myTable (type,id,date1,date2,diff) values ('blue',2,'x3',null,null);

select t.type,t.id,t.date1,t.date2,t.rownum
from
(
select mt.type,mt.id,mt.date1,mt.date2,mt.diff,
case 
when mt.id = @curId and mt.type = @curType then @curRow := @curRow + 1 
     else @curRow := 1
END as rownum,
@curId := mt.id,
@curType := mt.type
from myTable mt
join (select @curRow := 0, @curId := -1,@curType="") r
order by mt.id,mt.type
) t;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. połączenie mysqli nie działa wewnątrz funkcji?

  2. Jaka jest domyślna kolejność wybierania w PostgreSQL lub MySQL?

  3. Najłatwiejszy sposób na dodanie wielu spacji do ciągu w MySQL — SPACE()

  4. Jak sprawić, by PHP i MySQL działały w IIS 7.0?

  5. Sortowanie z uwzględnieniem wielkości liter w MySQL