РТЫ 00979 не группа по выражению

Существует довольно много путей. Примите A, и B является IEnumerable.

!A.Except(B).Any() && !B.Except(A).Any()
A.Count() == B.Count() && A.Intersect(B).Count() == B.Count()
etc
137
задан Ben 25 May 2014 в 19:59
поделиться

2 ответа

Вы должны поместить все столбцы SELECT в GROUP BY или использовать для них функции, которые сжимают результаты до одного значения (например, MIN , MAX или SUM ).

Простой пример, чтобы понять, почему это происходит: представьте, что у вас есть такая база данных:

FOO BAR
0   A
0   B

, и вы запускаете ВЫБРАТЬ * ИЗ таблицы GROUP BY foo . Это означает, что база данных должна возвращать одну строку в качестве результата с первым столбцом 0 для выполнения GROUP BY , но теперь есть два значения bar для выбора. . Какого результата вы ожидаете - A или B ? Или база данных должна возвращать более одной строки, нарушая контракт GROUP BY ?

218
ответ дан 23 November 2019 в 23:33
поделиться

Включить в предложение GROUP BY все выражения SELECT , которые не являются аргументами групповой функции.

15
ответ дан 23 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

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