-- 1.18 希望将每个Type按Num进行均等分,结果如下:CREATETABLE T0118(TypeVARCHAR(10),
Num INT);INSERTINTO T0118 VALUES('A',2);INSERTINTO T0118 VALUES('B',3);INSERTINTO T0118 VALUES('C',2);
T0118
+------+------+|Type| Num |+------+------+| A |2|| B |3|| C |2|+------+------+
结果
+------+-----+|Type| NUM |+------+-----+| A |1|| A |1|| B |1|| B |1|| B |1|| C |1|| C |1|+------+-----+1. 构建自己的sqt_values表
CREATETABLE my_sqt_values(Num INT);DELIMITER//CREATEPROCEDURE create_sqt_values(Num INT)BEGINDECLARE i INTDEFAULT0;WHILE i < Num DOINSERTINTO my_sqt_values VALUES(i);SET i = i +1;ENDWHILE;END//DELIMITER;CALL create_sqt_values(2000);2. 和T0118构建连接
SELECT t.Type,1AS NUM FROM T0118 t
LEFTJOIN my_sqt_values msv
ON t.Num > msv.Num
ORDERBY t.Type