MySQL计算相同的值

时间:2015-04-25 09:13:41

标签: mysql sql select mysqli count

我将此表命名为具有以下结构的奖品

`id` (PRIMARY)
`id_multiple`
`desc`
`winner`

我想选择那些没有winnerNULL)的人,如果他们有相同的id_multiple显示剩下的人数,则会将他们展示在一起胜利id_multiple

例如,有这个值:

id_multiple | winner | desc
1           | NULL   | voucher
1           | jonh   | voucher
2           | NULL   | car
2           | NULL   | car

我想要显示:

Left to win:
1 Voucher
2 Car

desc对于所有id_multiple都是相同的,因此使用id_multiple可能不明确吗?)

2 个答案:

答案 0 :(得分:3)

类似的东西:

cache_page

答案 1 :(得分:2)

你可以count case表达式:

SELECT   id_multiple, COUNT(CASE WHEN winner IS NULL THEN 1 END) AS left_to_win, `desc`
FROM     mytable
GROUP BY id_multiple, `desc`

或者更简单,使用sum表达式,利用true被解释为1false被解释为数字0的事实上下文:

SELECT   id_multiple, SUM(winner IS NULL) AS left_to_win, `desc`
FROM     mytable
GROUP BY id_multiple, `desc`