Nano Hash - криптовалюты, майнинг, программирование

Как подсчитать строки GROUP BY в T-SQL

У меня есть этот SQL-запрос, который выполняет GROUP BY для объединения всех строк, содержащих один и тот же Player_id, но не один и тот же Game_id:

SELECT p.Player_id, 
       p.Name, 
       p.Position, 
       SUM(s.Goals) AS goalsb, 
       SUM(s.Assists) AS assistsb, 
       SUM(s.Points) AS pointsb
FROM Dim_Player AS p 
INNER JOIN Fact_Statistics AS s ON s.Player_id = p.Player_id
GROUP BY p.Player_id, p.Name, p.Position
ORDER BY pointsb DESC, goalsb DESC

Что я хочу сделать, так это вставить COUNT каждый раз, когда GROUP BY объединяет строку с другой, чтобы создать новый столбец под названием «Сыгранные игры». Пример:

Player_id      Game_id    goalsb
8470598        465        1
8470598        435        1

это будет сгруппировано вместе с SQL-запросом выше, чтобы стать:

Player_id          goalsb
8470598            2

Но я хочу иметь это:

Player_id          goalsb       Games_played
8470598            2            2
17.12.2011

  • Не уверен, что понимаете вопрос, но решает ли проблема добавление COUNT (DISTINCT Game_Id) к оператору SELECT? 18.12.2011
  • Это сработало. Я делал COUNT (*) 18.12.2011
  • Я сделаю ответ из этого :) 18.12.2011

Ответы:


1

Если у вас есть повторяющиеся Game_id и вы хотите подсчитать различные значения, вы можете добавить

COUNT (DISTINCT Game_id)

пункт к вашему заявлению SELECT.

17.12.2011

2

Добавьте функцию подсчета в запрос выбора. COUNT(*) подсчитывает каждую строку в группе независимо от выбранных столбцов.

SELECT p.Player_id, p.Name, p.Position, SUM(s.Goals) AS goalsb, SUM(s.Assists) AS assistsb, SUM(s.Points) AS pointsb, COUNT(*) as [Games_played] 
FROM Dim_Player AS p INNER JOIN Fact_Statistics AS s ON s.Player_id = p.Player_id
GROUP BY p.Player_id, p.Name, p.Position, s.Game_id
ORDER BY pointsb DESC, goalsb DESC
17.12.2011
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..