Вычисление процента значения столбца для всех столбцов строки с максимальным значением строки - PullRequest
0 голосов
/ 10 марта 2020

У меня есть таблица ввода таблицы, например, ниже

Таблица ввода Input Table

Нужен вывод, как показано ниже

Значение OutPut

OutPut Value

Может ли кто-нибудь помочь мне получить вывод в sql server 2008 R2 version

Мое требование для 1-й строки: максимальное значение строки составляет 584663, поэтому для 1-й строки все значения столбца должны быть разделены на 584663. То же самое для 2-й строки. Максимальное значение строки составляет 782603, все значения столбца для 2-й строки должны быть разделены на 782603. Выходные значения в процентах.

1 Ответ

0 голосов
/ 10 марта 2020

Вы можете использовать sql_variant для получения обоих типов данных в одном столбце:

select Category, case when Accessories = MaxVal then 100 else cast(Accessories*100.0/MaxVal as sql_variant) end Accessories
                , case when Active = MaxVal then 100 else cast(Active*100.0/MaxVal as sql_variant) end Active
                , case when Cosmetics = MaxVal then 100 else cast((Cosmetics*100.0/MaxVal) as sql_variant) end Cosmetics
                , case when Home = MaxVal then 100 else cast((Home*100.0/MaxVal) as sql_variant) end Home
                , case when [Infant Wear] = MaxVal then 100 else cast(([Infant Wear]*100.0/MaxVal) as sql_variant) end [Infant Wear]
from input_table

Пожалуйста, ознакомьтесь с демонстрацией db <> fiddle здесь .

...