Существует ряд модулей 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])
Вы можете обернуть свой запрос следующим образом:
SELECT SUM(Total_Coupon_To_Be_Used) AS the_sum
FROM (
your query
) s
Используйте «Выражение таблицы», как в:
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
s
» необходим? – user3127554 13 July 2018 в 16:28FROM
. – Eric 13 July 2018 в 16:29from
допускает псевдоним i> в производной таблице i>. То, что он не дает понять, заключается в том, что может потребоваться псевдоним, как в этом случае. Поскольку он существует только для удовлетворения требования синтаксиса, вы можете использовать псевдоним типаas Placeholder
,Appendix
,Froderick
, .... – HABO 13 July 2018 в 18:31