Получить сумму столбца count в SQL

Существует ряд модулей Python, которые предоставляют реализации словаря, которые автоматически поддерживают ключи в отсортированном порядке. Рассмотрим модуль sortedcontainers , который является реализацией pure-Python и fast-as-C. Существует также сравнение производительности с другими популярными опциями, сравниваемыми друг с другом.

Использование упорядоченного dict - это неадекватное решение, если вам нужно постоянно добавлять и удалять пары ключ / значение, в то время как также итерация.

>>> from sortedcontainers import SortedDict
>>> d = {2:3, 1:89, 4:5, 3:0}
>>> s = SortedDict(d)
>>> s.items()
[(1, 89), (2, 3), (3, 0), (4, 5)]

Тип SortedDict также поддерживает индексированные определения местоположения и удаление, что невозможно во встроенном типе dict.

>>> s.iloc[-1]
4
>>> del s.iloc[2]
>>> s.keys()
SortedSet([1, 2, 4])

2
задан marc_s 13 July 2018 в 19:51
поделиться

2 ответа

Вы можете обернуть свой запрос следующим образом:

SELECT SUM(Total_Coupon_To_Be_Used) AS the_sum
FROM (
   your query
) s
2
ответ дан Eric 17 August 2018 в 12:24
поделиться
  • 1
    Это прекрасно работает! Однако мне было интересно, почему мы должны добавить последний символ после закрытия скобок. Не могли бы вы объяснить, почему этот «s» необходим? – user3127554 13 July 2018 в 16:28
  • 2
    Я не думаю, что ваш код будет запущен, если вы его удалите. В SQL Server вы должны подзапросить псевдонимы в FROM. – Eric 13 July 2018 в 16:29
  • 3
    Спасибо за объяснение! – user3127554 13 July 2018 в 16:38
  • 4
    Синтаксис для предложения from допускает псевдоним в производной таблице . То, что он не дает понять, заключается в том, что может потребоваться псевдоним, как в этом случае. Поскольку он существует только для удовлетворения требования синтаксиса, вы можете использовать псевдоним типа as Placeholder, Appendix, Froderick, .... – HABO 13 July 2018 в 18:31

Используйте «Выражение таблицы», как в:

select sum(Total_Coupon_To_Be_Used) from (
  SELECT dtc.coupon_type_company_name,  
    count(*) * dtc.coupon_type_company_coupon_amount as 'Total_Coupon_To_Be_Used',
    dtc.coupon_type_company_coupon_months_combinable
  FROM [dbo].[coupon_type_Company_User] dtcu
  JOIN coupon_type_Company dtc ON dtcu.coupon_type_Company_ID = dtc.id
  JOIN person p ON dtcu.userID = p.userID
  WHERE coupon_type_company_coupon_is_combinable = 1 
     or coupon_type_company_has_coupon = 1 
    and dtc.companyID = 1081
    AND p.is_active = 1
  GROUP BY
    dtc.coupon_type_company_name,dtc.coupon_type_company_coupon_amount,
    dtc.coupon_type_company_coupon_months_combinable
  ) x
1
ответ дан The Impaler 17 August 2018 в 12:24
поделиться
Другие вопросы по тегам:

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