Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

प्रति समूह एन यादृच्छिक रिकॉर्ड का चयन करें

मैंने तबेला और कैंपो मापदंडों को प्रक्रिया से हटा दिया ताकि इसे समझना आसान हो सके। मुझे यकीन है कि आप उन्हें वापस ला सकते हैं।

delimiter //
drop procedure if exists casualiPerGruppo //
create procedure casualiPerGruppo(in numPerGruppo int)
begin
declare valore int;
declare finite int default 0;
declare query_part varchar(200);
declare query_union varchar(2000);
declare cur_gruppi cursor for select distinct id_gruppo from prova;
declare continue handler for not found set finite = 1;

create temporary table resultset (id int, id_gruppo int, altro varchar(10));

set @query_part = 'select id, id_gruppo, altro from (select id, id_gruppo, altro from prova where id_gruppo = @id_gruppo order by rand() limit @numPerGruppo) [email protected]_gruppo';
set @query_part = replace(@query_part, '@numPerGruppo', numPerGruppo);
set @query_union = '';

open cur_gruppi;
mio_loop:loop
fetch cur_gruppi into valore;
    if finite = 1 then
        leave mio_loop;
    end if;

set @query_union = concat(@query_union, concat(' union ', @query_part));
set @query_union = replace(@query_union, '@id_gruppo', valore);

end loop;
close cur_gruppi;

set @query_union = substr(@query_union, 8);
set @query_union = concat('insert into resultset ', @query_union);

prepare stmt from @query_union;
execute stmt;
deallocate prepare stmt;
select * from resultset order by id_gruppo, altro;
drop table resultset;

end //
delimiter ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. घातक त्रुटि mysql.h:संकलन के दौरान ऐसी कोई फ़ाइल या निर्देशिका नहीं है

  2. फ़िल्टरिंग के लिए टाइमडेल्टा ऑब्जेक्ट बनाने के लिए SQLAlchemy Integer फ़ील्ड का उपयोग करना

  3. रैंड द्वारा mysql आदेश () प्रदर्शन समस्या और समाधान

  4. MySql ऑफ़सेट क्वेरी काम नहीं कर रही है

  5. मैसकल:रूटीन त्रुटि के लिए उपयोगकर्ता ''@'लोकलहोस्ट' को निष्पादित कमांड अस्वीकृत