Я пытаюсь сделать простой математический расчет на столе, что у меня есть ниже,как вычислить веса в MySQL
+-----------+---------+----------+-------+-------+
| Cty_lst | Cty_Rgn | Criteria | Total | Sntmt |
+-----------+---------+----------+-------+-------+
| ALL | ALL | ALL | 3155 | ALL |
| Bangalore | ALL | ALL | 628 | ALL |
| Chennai | ALL | ALL | 337 | ALL |
| Delhi | ALL | ALL | 263 | ALL |
| Gurgaon | ALL | ALL | 282 | ALL |
| Hyderabad | ALL | ALL | 406 | ALL |
| Mumbai | ALL | ALL | 482 | ALL |
| Noida | ALL | ALL | 235 | ALL |
| Pune | ALL | ALL | 522 | ALL |
+-----------+---------+----------+-------+-------+
я пытаюсь вычислить вес каждого города, который consititutes всем, что-то вроде результата таблица ниже, wt_calc вычисляется путем деления общей суммы города/всего например city bangalore wt рассчитывается по 628/3155 = 19.90. я попробовал много изменений ниже кода
SELECT Cty_lst , cty_rgn,Criteria, total,Sntmt,
(100*SUM(CASE WHEN Sntmt = 'all' AND Cty_lst != 'all' THEN total END)
/
SUM(CASE WHEN Sntmt = 'all' AND Cty_lst = 'all' THEN total END)
) AS wt_calc
FROM citytable
GROUP BY Srvy_cty
+-----------+---------+----------+-------+-------+---------+
| Cty_lst | Cty_Rgn | Criteria | Total | Sntmt | Wt_Calc |
+-----------+---------+----------+-------+-------+---------+
| ALL | ALL | ALL | 3155 | ALL | 100 |
| Bangalore | ALL | ALL | 628 | ALL | 19.90 |
| Chennai | ALL | ALL | 337 | ALL | 10.68 |
| Delhi | ALL | ALL | 263 | ALL | 8.34 |
| Gurgaon | ALL | ALL | 282 | ALL | 8.94 |
| Hyderabad | ALL | ALL | 406 | ALL | 12.87 |
| Mumbai | ALL | ALL | 482 | ALL | 15.28 |
| Noida | ALL | ALL | 235 | ALL | 7.45 |
| Pune | ALL | ALL | 522 | ALL | 16.55 |
+-----------+---------+----------+-------+-------+---------+
У вас есть сумма всех городов, как одна отдельная строка в таблице? Это будет странный дизайн стола. –
Есть ли строка со значением 'Cty_lst = 'ALL'' или она рассчитана? – AgRizzo
И что такое srvy_cty, вы не ссылаетесь на него в предложении select? – AgRizzo