Как считать значения столбцов

#sql #sql-server

#sql #sql-сервер

Вопрос:

Использование SQL Server 2000

Таблица1

 Column1
  20
  30
  40
  20
  40
  30
  30
  

Я хочу считать так

 20 - 2
30 - 3
40 - 2
  

В случае, если значение столбца 20 или 30 или 40 недоступно, оно должно отображать 20 - 0 или 30 - 0 или 40 - 0 .

Например

 Column1
20
30
20
30
30
  

Ожидаемый результат

 20 - 2 
30 - 3
40 - 0
  

Я получу только 20, 30. 40. Больше значения не будет.

Как сделать запрос

Нужна помощь

Комментарии:

1. Вы пробовали использовать COUNT оператор?

Ответ №1:

 select  item,count (item)  from table group by item
  

РЕДАКТИРОВАТЬ: (после вашего редактирования)

  CREATE TABLE #table1       (          numbers int      ) 
insert into #table1 (numbers) select 20
insert into #table1 (numbers) select 30
insert into #table1 (numbers) select 40


SELECT [num]
  FROM [DavidCard].[dbo].[sssssss]

    select  numbers,count (num)  from #table1  LEFT JOIN [sssssss] ON #table1.numbers =  [sssssss].num      group by numbers 
  

Комментарии:

1. @Gopal, ты также снял галочку с моего ответа, в следующий раз открывай новый вопрос 🙂

Ответ №2:

SQL-запрос 101:

 SELECT Column1, COUNT(*)
FROM dbo.YourTable
GROUP BY Column1
ORDER BY Column1
  

Обновление: если вы хотите получить список возможных значений и их потенциальное количество (или 0) в другой таблице, вам нужны две таблицы, в основном — одна со всеми возможными значениями, одна с фактическими значениями — и a LEFT OUTER JOIN , чтобы объединить их — что-то вроде:

 SELECT
    p.Column1, ISNULL(COUNT(t.Column1), 0)
FROM    
    (SELECT 20 AS 'Column1'
     UNION 
     SELECT 30
     UNION 
     SELECT 40) AS p
LEFT OUTER JOIN
    dbo.YourTable t ON t.Column1 = p.Column1
GROUP BY    
    p.Column1
ORDER BY 
    p.Column1
  

Комментарии:

1. Ваш запрос работает, например, если в таблице отсутствует столбец 20, это означает, что он должен отображать 20 — 0, как это сделать

2. @GOpal: если «20» там нет — должен ли запрос знать, что там должна быть строка «20 — 0» (а не «21 — 0» или «25 — 0»)? Вы не можете этого сделать — вы можете считать только то, что действительно есть в вашей таблице…