最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定

【原創(chuàng)】利用MySQL 的GROUP_CONCAT函數(shù)實現(xiàn)聚合乘法

標(biāo)簽:
MySQL


MySQL 聚合函数里面提供了加,平均数,最小,最大等,但是没有提供乘法,我们这里来利用MYSQL现有的GROUP_CONCAT函数实现聚合乘法。

先创建一张示例表:

CREATE TABLE `tb_seq` (

  `num` int(10) NOT NULL,

  `seq_type` enum('yellow','green','red') NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入示例数据:

insert  into `tb_seq`(`num`,`seq_type`) 

values (4,'green'),(1,'red'),(3,'green'),

    (1,'red'),(8,'red'),(4,'yellow'),

    (8,'red'),(7,'yellow'),(10,'red'),

    (1,'red'),(1,'red'),(1,'yellow'),

    (5,'green'),(9,'red'),(1,'yellow'),

    (6,'yellow');

创建基于逗号分隔符的字符串乘法,前提是字符串逗号分隔的都是数字。

DELIMITER $$

USE `t_girl`$$

DROP FUNCTION IF EXISTS `func_multiple`$$

CREATE DEFINER=`root`@`localhost` FUNCTION `func_multiple`(

    f_nums VARCHAR(1000)

    ) RETURNS DOUBLE(10,2)

BEGIN

      -- Created by ytt 2014/10/21.

      DECLARE result DOUBLE(10,2) DEFAULT 1;

      DECLARE cnt,i INT DEFAULT 0;

      

      SET cnt = CHAR_LENGTH(f_nums) - CHAR_LENGTH(REPLACE(f_nums,',','')) + 1;

      

      WHILE i < cnt

      DO

        -- get multiple result.

        SET result = result * REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(f_nums,',',i+1)),',',1));

        SET i = i + 1;

      END WHILE;

      SET result = ROUND(result,2);

      RETURN result;

   

    END$$

DELIMITER ;

好了,我们利用我创建的函数以及MYSQL自带的GROUP_CONCAT聚合函数就可以很方便的实现乘法了。

SELECT seq_type,func_multiple(GROUP_CONCAT(num ORDER BY num ASC SEPARATOR ',')) AS multiple_num FROM tb_seq WHERE 1 GROUP BY seq_type;

+----------+--------------+

| seq_type | multiple_num |

+----------+--------------+

| yellow   |       168.00 |

| green    |        60.00 |

| red      |      5760.00 |

+----------+--------------+

3 rows in set (0.00 sec)

©著作权归作者所有:来自51CTO博客作者david_yeung的原创作品,如需转载,请注明出处,否则将追究法律责任

MySQL乘法存储函数SQL语句与特殊技巧


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消