2016-01-19 3 views
0

Скажем у меня есть значения последующих,MySQL, группируя значения, которые отличаются

1, a, 10 
2, a, 20, 
3, a, 30, 
4, a, 1, 
5, a, 2, 
6, a, 30 
7, a, 30 

, как я могу сделать запрос таким образом, что я могу получить сумму всех РАЗЛИЧНЫХ значений?

я хочу выход быть: 63 она исключала значения 6,7

в моем реальном сценарии я использую:

SELECT *, SUM(DISTINCT(exp))/1000000000 as bil from player_attributes 
where date >= (CURDATE() - INTERVAL 1 DAY) 
group by player 
order by bil 

не повезло.

+1

почему исключают 6,7 а не 3? любые другие условия – SIDU

ответ

0

предположим, что ваша структура таблицы = вкладка [идентификатор, а, ехр]

SELECT tab.a, sum(tab.exp) 
FROM tab, (
    SELECT exp,min(id) mid 
    FROM tab 
    WHERE ... 
    GROUP BY 1 
) AS tab_a 
WHERE tab.id=tab_a.mid 
ORDER BY 2 
0
select DistinctSum=sum(distinct x)/1000000000 as bil 
from 
(
    SELECT X=value FROM player_attributes 
    where date >= (CURDATE() - INTERVAL 1 DAY) 
) x 

Попробуйте это ... думаю, так что полезно ФОТ вас ...

Смежные вопросы