Я не думаю, что есть один, и это похоже на большой недостаток. Это определенно не упоминается в части объекта схемы спецификации . Они вызывают элементы, которые были приняты из схемы JSON, и anyOf
не входит в их число:
Следующие свойства берутся непосредственно из определения схемы JSON и следуют тем же спецификациям :
- $ ref - как формат JSON Reference
- (подробности см. в Формах типа данных)
- title
- описание (синтаксис GFM может использоваться для расширенного текстового представления)
- по умолчанию (в отличие от схемы JSON, значение ДОЛЖНО соответствовать определенному типу для объекта схемы)
- multipleOf
- максимальный
- эксклюзивныйMaximum
- минимальный
- эксклюзивныйMinimum
- maxLength
- minLength
- ] pattern
- maxItems
- minItems
- uniqueItems
- maxProperties
- minProperties
- требуется
- enum
- type
Следующие свойства взяты из определения схемы JSON, но их определения были скорректированы на Sw Спецификация agger. Их определение такое же, как и у схемы JSON, только там, где исходное определение ссылается на определение схемы JSON, вместо этого используется определение объекта схемы.
blockquote>
- items
- allOf
- свойства
- дополнительные свойства
Я думаю, что самое близкое поле
discriminator
, но это означает, что у вас есть для структурирования вашего вывода для размещения Swagger.
Я не уверен, но кросс-аппликации можно избежать, если я пойму, что ты делаешь. и это поможет с производительностью, но, поскольку у меня нет доступа к данным, вы должны проверить их и посмотреть.
, поэтому я начну после того, как вы поместите данные во временную таблицу. попробуйте следующее: -
;with TempWithSum as (
--get the sum partition by string_groupby, int_booking_year
select *,sum(float_total) over(partition by string_groupby, int_booking_year) as float_sum_total
from @temp_00
),NamesCat as(
--get all customer names grouped by string_groupby
select string_groupby, STRING_AGG(cast(string_customer_tpi as varchar(max)), '|') as string_tpis_concat
from @temp_00
group by string_groupby
),AllData as(
--get the row number partition string_groupby and ordered by string_groupby, float_sum_total
select string_customer_name, string_customer_region, string_industry_group, string_city, z.string_state,
string_country, string_booking_type, string_sales_branch, string_sales_region, string_sales_area,
int_booking_year, float_sum_total, string_tpis_concat, string_groupby
,ROW_NUMBER() over (partition by string_groupby order by string_groupby, float_sum_total) as row_num
from TempWithSum z
inner join NamesCat on NamesCat.string_groupby=TempWithSum.string_groupby
)
select * from AllData where row_num=1
Надеюсь, что это сработает и даст нужный вам результат в ожидаемые вами сроки.
Примечание: я знаю, что вы хотели исключить номер строки, и я предлагаю исключить перекрестное применение, но ваша цель - производительность.