GROUP BY в C#
Группировка GROUP BY собирает строки с
одинаковым ключом вместе. Рядом с SUM
в списке полей оставляют столбец группы: в
примере это "city". Поле "amount"
внутри группы разное, его показывает только
сумма.
Для города "a" сумма 10+5 =
15 (первая строка после
ORDER BY city):
using Microsoft.Data.Sqlite;
using SqliteConnection db = new("Data Source=:memory:");
db.Open();
using (SqliteCommand c = db.CreateCommand())
{
c.CommandText = "CREATE TABLE sales (city TEXT, amount INT); INSERT INTO sales VALUES ('a',10),('a',5),('b',7)";
c.ExecuteNonQuery();
}
using SqliteCommand q = db.CreateCommand();
q.CommandText = "SELECT city, SUM(amount) FROM sales GROUP BY city ORDER BY city";
using SqliteDataReader r = q.ExecuteReader();
r.Read();
Console.WriteLine(r.GetInt64(1));
Группа без строк не появится; пустая таблица - пустой ридер.
Создайте таблицу "staff" с колонкой
"dept". Добавьте сотрудников в отделы
"sales" и "support" и выведите,
сколько получилось отделов.