Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да използвам групиране по в заявка на SQL Server?

Като цяло, след като започнете ГРУПИРАНЕТО, всяка колона, посочена във вашия SELECT, трябва да бъде или колона във вашата GROUP, или някакъв агрегат от тях. Да приемем, че имате таблица като тази:

<предварителен код>| ID | Име | Град || 1 | Foo бар | Сан Хосе || 2 | Бар foo | Сан Хосе || 3 | Баз Фу | Санта Клара |

Ако искате да получите списък с всички градове във вашата база данни и опитате:

SELECT * FROM table GROUP BY City 

...това ще се провали, защото питате за колони (ID и име), които не са в клаузата GROUP BY. Вместо това можете:

ИЗБЕРЕТЕ Град, пребройте (Град) като Cnt ОТ таблица ГРУПИРАНЕ ПО Град 

...и това ще ви донесе:

<предварителен код>| Град | Cnt || Сан Хосе | 2 || Санта Клара | 1 |

... но НЯМА да ви даде лична карта или име. Можете да правите по-сложни неща с напр. подизбира или се самосъединява, но основно това, което се опитвате да направите, не е възможно, както е посочено. Разбийте допълнително проблема си (как искате да изглеждат данните?) и продължете оттам.

Успех!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Запазване на ORDER BY в SELECT INTO

  2. как да откриете изчакване на sql сървъра от .NET приложение, без да използвате catch Exception

  3. SQLBulkCopy с вмъкване на идентичност в целевата таблица

  4. Запитване на SQL Server:Бързо с буквално, но бавно с променлива

  5. Синтаксична грешка близо до 'of' в условието за търсене в пълен текст 'control of'