Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 计算表中多级标准的权重_Mysql - Fatal编程技术网

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     |
  +-----------+-------------------------------+-------+-------+----------+----------+

因为这是你两天内的第二个问题,所以我将使用陈词滥调来帮助你编写更好的查询

  • 除非存在聚合函数(如SUM、MAX等),否则切勿使用GROUP BY-在上述示例中未使用这些函数
  • 使用GROUP BY时,要养成使用SELECT中不属于聚合函数的每个字段的习惯
  • 这是解决办法

    选择
    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`