久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

mysql如何計算每項權重占比

瀏覽:121日期:2022-06-20 14:33:52

問題描述

有表及數據如下

select * from weight_test;+----+------+--------+| id | name | weight |+----+------+--------+| 1 | aaa | 10 || 2 | bbb | 20 || 3 | ccc | 30 || 4 | ddd | 40 |+----+------+--------+

想計算每項的權重占比

#嘗試一 失敗select weight, weight/sum(weight) from weight_test;ERROR 1140 (42000): In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column ’test.weight_test.weight’; this is incompatible with sql_mode=only_full_group_by#嘗試二 失敗select weight, weight/sum(weight) from weight_test group by weight;+--------+--------------------+| weight | weight/sum(weight) |+--------+--------------------+| 10 | 1.0000 || 20 | 1.0000 || 30 | 1.0000 || 40 | 1.0000 |+--------+--------------------+#嘗試三 成功select weight, weight/total from weight_test a, (select sum(weight) total from weight_test) b;+--------+--------------+| weight | weight/total |+--------+--------------+| 10 | 0.1000 || 20 | 0.2000 || 30 | 0.3000 || 40 | 0.4000 |+--------+--------------+

只有第三種這一種方式嗎?有沒更簡單的方式?

問題解答

回答1:

SELECT weight,weight/(select sum(weight) from weight_test) from weight_test;

回答2:

把my.ini中的sql_mode=only_full_group_by這個去掉再嘗試第一個吧

回答3:

set @sum = (select sum(weight) from weight_test);select @sum;+------+| @sum |+------+| 100 |+------+select weight, weight/@sum from weight_test;+--------+-------------+| weight | weight/@sum |+--------+-------------+| 10 | 0.1000 || 20 | 0.2000 || 30 | 0.3000 || 40 | 0.4000 |+--------+-------------+

相關文章:
主站蜘蛛池模板: 安阳县| 巩留县| 通化市| 聂拉木县| 浮梁县| 龙南县| 桑日县| 安远县| 文水县| 新宾| 隆回县| 客服| 通道| 长垣县| 黑龙江省| 察隅县| 雷州市| 丰城市| 连江县| 湖州市| 德格县| 馆陶县| 木兰县| 雷山县| 凤台县| 百色市| 宁陵县| 碌曲县| 长垣县| 邵阳县| 巴塘县| 抚顺县| 桑日县| 合作市| 彭州市| 莱芜市| 安阳市| 白沙| 耿马| 宁安市| 安丘市|