Heim > Datenbank > MySQL-Tutorial > 【原创】利用MySQL 的GROUP_CONCAT函数实现聚合乘法

【原创】利用MySQL 的GROUP_CONCAT函数实现聚合乘法

WBOY
Freigeben: 2016-06-07 16:48:10
Original
1468 Leute haben es durchsucht

MySQL聚合函数里面提供了加,平均数,最小,最大等,但是没有提供乘法,我们这里来利用MYSQL现有的GROUP_CONCAT函数实现聚合乘法。先创建一张示例表:CREATETABL

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 

好了,我们利用我创建的函数以及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)


本文出自 “上帝,咱们不见不散!” 博客,请务必保留此出处

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage