сжать результаты в 1 результат под определенным пределом

MySQL не позволяет вам установить внутреннее значение auto_increment «value» ниже текущего максимального ID.

Поэтому, если вы добавляете 1000 строк, начинающихся с 5000, значение инкремента устанавливается равным 6000. Вы все еще могут добавлять строки с идентификаторами, которые еще не существуют (например, 4500), но это не стоит беспокоить. Есть много чисел от 6000 до 4 миллиардов.

0
задан sam smith 19 March 2019 в 09:28
поделиться

3 ответа

Вы можете использовать APPLY:

SELECT tt.Name, SUM([Percentage]) AS [Percentage]
FROM table t CROSS APPLY
     ( VALUES (CASE WHEN [Percentage] < 15 
                    THEN 'Everyone else' 
                    ELSE Name 
               END) 
     ) tt(Name)
GROUP BY tt.Name;
0
ответ дан Yogesh Sharma 19 March 2019 в 09:28
поделиться

Используйте выражение case в производной таблице (подзапрос), чтобы собрать вместе менее 15% людей. GROUP BY его результат:

select name, sum(Percentage)
from
(
    select case when Percentage > 15 then name
                else 'Everyone else'
           end as name,
           Percentage
    from tablename
) dt
group by name
0
ответ дан jarlh 19 March 2019 в 09:28
поделиться

Для такого простого условия вы можете просто использовать CASE выражения:

select (case when percentage < 15 then 'Everyone else'
             else name
        end) as name,
       sum(percentage) as percentage
from t
group by (case when percentage < 15 then 'Everyone else'
               else name
          end)
order by sum(percentage) asc;
0
ответ дан Gordon Linoff 19 March 2019 в 09:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: