Как сгруппировать по идентификатору строки в sql server 2008

#sql #sql-server #sql-server-2008 #group-by

#sql #sql-сервер #sql-server-2008 #сгруппировать по

Вопрос:

Как мне получить :

 ID                 Value
99-07-06-01          1
99-07-06-02          2
99-07-06             3

99-07-08-01          4
99-07-08-02          5
99-07-08             6

to

ID                  Value
99-07-06              6
99-07-08              15
  

то есть я хотел сгруппировать по идентификатору [99-07-0x] при суммировании.
Спасибо

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

1. Как вы получили C amp; F, насколько я вижу, значение равно СУММЕ?

2. Извините, C amp; F следует удалить.

Ответ №1:

Попробуйте это (как MySQL, так и MS-SQL):

 SELECT LEFT(ID, 8) AS nID,
       SUM(Value) AS tot
FROM your_table
GROUP BY LEFT(ID, 8)
  

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

1. У меня создалось впечатление, что вы не можете сгруппировать по псевдониму в MS-SQL .. ?

2. @Gibron: можно использовать и другие конструкции: вложенный запрос или использование GROUP BY LEFT(ID, 8)

3. @Gibron: честно говоря, я не уверен, но я отредактировал свой пост, чтобы отразить ваше предложение. Большое спасибо 🙂