SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for person_base_info -- ---------------------------- DROP TABLE IF EXISTS `person_base_info`; CREATE TABLE `person_base_info` ( `uuid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`uuid`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of person_base_info -- ---------------------------- INSERT INTO `person_base_info` VALUES ('w1e2233rf', '5', '深圳', '222@qq.om'); INSERT INTO `person_base_info` VALUES ('we33212', '2', '深圳', '225452@qq.om'); INSERT INTO `person_base_info` VALUES ('we33rf', '1', '深圳', '224232@qq.om'); INSERT INTO `person_base_info` VALUES ('we5663rf', '4', '北京', '28822@qq.om'); INSERT INTO `person_base_info` VALUES ('wewq33rf', '3', '深圳', '222@qq.om'); SET FOREIGN_KEY_CHECKS = 1;
查詢出所有數據:
SELECT * FROM person_base_info
查詢地址所占比:
SELECT a.address, a.cont AS countAddress, b.sum AS sumAddress, CONCAT( ROUND( a.cont / b.sum * 100, 2 ), '', '%' ) AS percent FROM ( SELECT address, COUNT( address ) AS cont FROM person_base_info GROUP BY address ) a,( SELECT COUNT(*) AS sum FROM person_base_info ) b
SQL函數解釋:
MySQL ROUND(x) 函數返回最接近於參數 x 的整數;ROUND(x,y) 函數對參數x進行四舍五入的操作,返回值保留小數點后面指定的y位。
MySQL CONCAT()函數用於將多個字符串連接成一個字符串。