Mysql 计算表中多级标准的权重
这是我上一个问题的后续问题 这是 我能够在单列级别上检索权重,但是当我尝试在组级别上执行相同操作时,我运行了下面的代码来实现相同的功能Mysql 计算表中多级标准的权重,mysql,Mysql,这是我上一个问题的后续问题 这是 我能够在单列级别上检索权重,但是当我尝试在组级别上执行相同操作时,我运行了下面的代码来实现相同的功能 SELECT a.`Srvy_Cty`, a.`Total` AS num, -- sum(b.total) as gt, b.total AS den , (a.total /b.total)*100 AS Wt, a.`Sntmt`, a.score FROM Subctylst A JOIN Subctylst
SELECT
a.`Srvy_Cty`,
a.`Total` AS num,
-- sum(b.total) as gt,
b.total AS den ,
(a.total /b.total)*100 AS Wt,
a.`Sntmt`,
a.score
FROM Subctylst A
JOIN Subctylst b
ON A.srvy_cty = B.srvy_cty AND A.cty_rgn = B.cty_rgn
WHERE a.sntmt = 'All' AND B.score = 2000
GROUP BY a.srvy_cty, a.cty_rgn, a.sntmt
请在中查找数据和查询,请指导我修复此问题
预期结果
+-----------+-------------------------------+-------+-------+----------+----------+
| Srvy_Cty | Cty_Rgn | Total | Sntmt | score | dsrd O/c |
+-----------+-------------------------------+-------+-------+----------+----------+
| ALL | ALL | 3677 | ALL | 2000 | |
| Bangalore | ALL | 628 | ALL | 2000 | 100 |
| Bangalore | CBD AND off CBD - Bangalore | 7 | D | \N | |
| Bangalore | CBD AND off CBD - Bangalore | 4 | I | \N | |
| Bangalore | CBD AND off CBD - Bangalore | 5 | S | \N | |
| Bangalore | CBD AND off CBD - Bangalore | 16 | ALL | 87.1094 | 2.55 |
| Bangalore | East & South East Bangalore | 91 | D | \N | |
| Bangalore | East & South East Bangalore | 82 | I | \N | |
| Bangalore | East & South East Bangalore | 18 | S | \N | |
| Bangalore | East & South East Bangalore | 191 | ALL | 95.732 | 30.41 |
| Bangalore | North & North East Bangalore | 58 | D | \N | |
| Bangalore | North & North East Bangalore | 85 | I | \N | |
| Bangalore | North & North East Bangalore | 19 | S | \N | |
| Bangalore | North & North East Bangalore | 162 | ALL | 114.7119 | 25.80 |
| Bangalore | South Bangalore | 77 | D | \N | |
| Bangalore | South Bangalore | 105 | I | \N | |
| Bangalore | South Bangalore | 24 | S | \N | |
| Bangalore | South Bangalore | 206 | ALL | 112.0087 | 32.80 |
| Bangalore | West AND North West Bangalore | 25 | D | \N | |
| Bangalore | West AND North West Bangalore | 25 | I | \N | |
| Bangalore | West AND North West Bangalore | 3 | S | \N | |
| Bangalore | West AND North West Bangalore | 53 | ALL | 100 | 8.44 |
| Calcutta | ALL | 522 | ALL | 2000 | 100.00 |
| Calcutta | Central Pune | 20 | D | \N | |
| Calcutta | Central Pune | 22 | I | \N | |
| Calcutta | Central Pune | 6 | S | \N | |
| Calcutta | Central Pune | 48 | ALL | 103.6458 | 9.20 |
| Calcutta | East Pune | 62 | D | \N | |
| Calcutta | East Pune | 64 | I | \N | |
| Calcutta | East Pune | 8 | S | \N | |
| Calcutta | East Pune | 134 | ALL | 101.4034 | 25.67 |
| Calcutta | North Pune | 34 | D | \N | |
| Calcutta | North Pune | 25 | I | \N | |
| Calcutta | North Pune | 11 | S | \N | |
| Calcutta | North Pune | 70 | ALL | 89.1633 | 13.41 |
| Calcutta | South Pune | 30 | D | \N | |
| Calcutta | South Pune | 17 | I | \N | |
| Calcutta | South Pune | 5 | S | \N | |
| Calcutta | South Pune | 52 | ALL | 77.4038 | 9.96 |
| Calcutta | West Pune | 115 | D | \N | |
| Calcutta | West Pune | 81 | I | \N | |
| Calcutta | West Pune | 22 | S | \N | |
| Calcutta | West Pune | 218 | ALL | 85.9776 | 41.76 |
| Chennai | ALL | 337 | ALL | 2000 | |
| Chennai | Central Chennai | 24 | D | \N | |
| Chennai | Central Chennai | 11 | I | \N | |
| Chennai | Central Chennai | 2 | S | \N | |
| Chennai | Central Chennai | 37 | ALL | 66.7641 | 7.09 |
| Chennai | North Chennai | 11 | D | \N | |
| Chennai | North Chennai | 17 | I | \N | |
| Chennai | North Chennai | 2 | S | \N | |
| Chennai | North Chennai | 30 | ALL | 118.6667 | 5.75 |
| Chennai | South Chennai | 113 | D | \N | |
| Chennai | South Chennai | 108 | I | \N | |
| Chennai | South Chennai | 28 | S | \N | |
| Chennai | South Chennai | 249 | ALL | 98.2178 | 47.70 |
| Chennai | West Chennai | 7 | D | \N | |
| Chennai | West Chennai | 8 | I | \N | |
| Chennai | West Chennai | 6 | S | \N | |
| Chennai | West Chennai | 21 | ALL | 103.4014 | 4.02 |
+-----------+-------------------------------+-------+-------+----------+----------+
因为这是你两天内的第二个问题,所以我将使用陈词滥调来帮助你编写更好的查询
选择
a、 ‘Srvy_Cty’,
a、 ‘Cty_Rgn’,
a、 “总计”,
a、 `Sntmt`,
a、 得分,
四舍五入(100.00*a.`Total`/b.`Total`,2)作为dsrd
作为一个
左连接子类型为b
关于a.`Srvy\u Cty`=b.`Srvy\u Cty`
和b.'Cty_Rgn`='All'
和a.score'\N'
a.`Srvy\u Cty`,a.`Cty\u Rgn订购`
(这与您的输出不完全匹配。如果您不希望dsrd用于第一条记录(即,
ALL
,则将此子句放入JOIN:和a.Srvy\u Cty'ALL'
)您希望结果集看起来像什么?抱歉,不清楚,问题中的表格有一个名为dsrd O/c的列,该列是所需结果的缩写,不是原始表格的一部分。多亏了大量的解决方案Agrizzo,我对这个环境不熟悉,您的指针在很大程度上帮助我理解e机械师…感谢您抽出时间指导我…干杯:)
SELECT
a.`Srvy_Cty`,
a.`Cty_Rgn`,
a.`Total`,
a.`Sntmt`,
a.score,
ROUND(100.00 * a.`Total`/ b.`Total`, 2) as dsrd
FROM Subctylst AS a
LEFT JOIN Subctylst AS b
ON a.`Srvy_Cty` = b.`Srvy_Cty`
AND b.`Cty_Rgn` = 'All'
AND a.score <> '\N'
ORDER BY a.`Srvy_Cty`, a.`Cty_Rgn`