Əsas səhifə > MySQL > Sütunda olan qiymətlərin hasilinin tapılması

Sütunda olan qiymətlərin hasilinin tapılması

Maraqlı bir tapşırıq verilmişdi MySQL User Group-da. Aktiv community faydalı üsullar kəşf edə bildi.
O üsulları və bəzi əlavələri də qeyd etməklə ümumiləşdirib yazıram.
Tapşırıq bundan ibarət idi:
`~ Deyək ki, sales cədvəlində sales_id-nin qiymətləri var. hamısı integer olan bu qiymətlərin hasilini tapmaq lazımdır. Yəni sales_id-nin bütün data-larını bir-birinə vurmalıyıq. Asanlıq üçün sütundakı bütün data-ları yox 3 id-nin hasilini tapacıq. Eyni qayda bütün data-lara da şamil olunur~`

1-ci üsul Procedure. Kamil İbadovFarida Asadova tərəfindən irəli sürülmüş təklif əsasında. Tamamilə işləkdir.:

DELIMITER $$

CREATE PROCEDURE `hasil`()
BEGIN
     declare hasil bigint;
     declare eded int;
     declare v_last_row_fetched int;

     declare cursor1 cursor for
     select sales_id from sales where sales_id in(23,24,25);

     declare continue handler for not found set v_last_row_fetched=1;
       set hasil=1;
       set v_last_row_fetched=0;
       open cursor1;
            cursor_loop: loop
            fetch cursor1 into eded;
                 if v_last_row_fetched=1 then
                      leave cursor_loop;
                 end if;

                 set hasil=eded*hasil;
                 end loop cursor_loop;
     close cursor1;
     select hasil from dual;
     set v_last_row_fetched=0;

END$$

2-ci üsul Elşad Ağayev tərəfindən yazılıb:

set @var = 1;
select max(t.hasil) from 
(SELECT (@var := @var * sales_id) as hasil 
FROM sales where sales_id in(23,24,25)) as t;

3-cü üsul mənim tərəfimdən irəli sürülüb:

select exp(sum(log(sales_id))) from sales where sales_id in (23,24,25);

4-cü üsul da mənim tərəfimdən irəli sürülüb bu dünənki müzakirədə deyilmədi lakin son anda kəşf olundu:

select POW(2,SUM(LOG(2,sales_id))) from sales where sales_id in(23,24,25);

Təşəkkürlər😉

Kateqoriyalar: MySQL Etiketlər: , , , ,
  1. Hələlik heç bir şərh yoxdur
  1. No trackbacks yet.

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma

%d bloqqer bunu bəyənir: