我有以下的模拟表:MySQL我该如何实现这个查询?
+---------+-------------------+------+------+
| NAME | TITLE | SIZE | Hit |
+---------+-------------------+------+------+
| A | Hippo1 | H | 0 |
| A | Hippo2 | H | 0 |
| A | Hippo3 | H | 1 |
| A | Hippo1 | M | 0 |
| A | Hippo2 | M | 1 |
| A | Hippo3 | M | 1 |
| A | Hippo1 | L | 0 |
| A | Hippo2 | L | 1 |
| A | Hippo3 | L | 1 |
+---------+-------------------+------+------+
| B | Snail1 | H | 1 |
| B | Snail1 | M | 0 |
| B | Snail1 | L | 1 |
+---------+-------------------+------+------+
| C | Dog | H | 1 |
| C | Dog | M | 0 |
+---------+-------------------+------+------+
| D | Sheep | H | 0 |
| D | Sheep | L | 1 |
+---------+-------------------+------+------+
| E | Fish | H | 1 |
| E | Fish | H | 1 |
+---------+-------------------+------+------+
我要的结果将需要
+---------+----------+-------+
| NAME | TITLE | SCORE |
+---------+----------+-------+
| A | Hippo | 100 |
| B | Snail | 80 |
| C | Dog | 80 |
| D | Sheep | 10 |
| E | Fish | 100 |
+---------+----------+-------+
计算比较:
- 类型最多可只有三个值:{H,M,L};
- 当所有值都存在,它们被分级为如下:H = 70,M = 20,L = 10
ALL独特casese是
- 案例{H,M}:H = 80 M = 20
- 案例{M,L}:M = 60,L = 40
- 案例{H,L}:H = 90,L = 10
- 案例{H}:H = 100
- 案例{M }:M = 100
- Cas E {L}:L = 100
- 案例{H,M,L}:H = 70,M = 20,L = 10
说明:
Hippo Has case {H,M,L}
Snail has case {H,M,L}
Dog has case {H,M}
Sheep has case {H,L}
Fish has case {H}
进一步的解释
河马:虽然并非所有的大小都有一击,但Hippo已经获得了100分,因为每个病例至少有1个已经满足了一次每题。因此HIPPO3有三个H
M
L
satsified所以河马可以conidered发现100%的
从上面提取(行是观众逻辑结构)
| A | Hippo1 | H | 0 |
| A | Hippo2 | H | 0 |
| A | Hippo3 | H | 1 | <--Here
+-------------------------------------------+
| A | Hippo1 | M | 0 |
| A | Hippo2 | M | 1 |
| A | Hippo3 | M | 1 | <--Here
+-------------------------------------------+
| A | Hippo1 | L | 0 |
| A | Hippo2 | L | 1 |
| A | Hippo3 | L | 1 | <--Here
除非你确实有一个动物园)是这个家庭作业? – 2012-03-21 20:05:36
没关系,如果是这样,我们会提供帮助,如果是这样,只需要这样标记即可。 – 2012-03-21 20:06:09
不,我向你保证这不是作业 – stackoverflow 2012-03-21 20:07:26