2017-01-12 3 views
0

Как я могу получить последний столбец на основе столбцов «конкуренция» и «пользователь»? следующий запрос дает ошибку!Как найти количество столбцов на основе двух столбцов

SELECT DISTINCT COUNT(*) AS countofcomments 
 
FROM k 
 
GROUP BY competition, user

enter image description here

+0

Вы имеете в виду «как * найти» количество столбцов на основе двух столбцов? » –

+0

@Alex Спасибо, что сообщили мне! Я починил это. У меня всего 3 дня, пока из-за работы семинара и до сих пор нет надлежащих данных для анализа данных! Мой мозг прекратил работать –

+0

Я не понимаю, какие комментарии должны содержать. Это число, строка или это таблица с массивом комментариев? Какова ваша структура таблицы для этого? –

ответ

0

Я не знаю, что хорошая практика, вы пытаетесь достичь, При рассмотрении результирующего набора, вы можете попробовать что-то вроде этого

CREATE TABLE #Example(
     [competition]  [nvarchar](50) NULL,  
     [user] [nvarchar](50) NULL, 
     [comments] nvarchar(50) NOT NULL, 
) 
GO 

INSERT #Example ([competition],[user], [comments]) VALUES ('INDIA','CHENNAI','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('INDIA','KOCHI','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('INDIA','BANGLORE','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('INDIA','HYDERABAD','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('US','MAIAMI','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('US','SANFRANC','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('US','MOUNT','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('US','LOSANGELS','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('UK','MANCHESTER','ssss') 
INSERT #Example ([competition],[user], [comments]) VALUES ('UK','CHELSEA','ssss') 

SELECT * from (
SELECT * FROM #Example 
) tab1 join 

(
SELECT [competition] , count([comments])count FROM #Example 
group by [competition] 
) tab2 on tab1.[competition]= tab2.[competition] 


DROP table #Example 
0

Вы можете сделать это, используя функцию окна:

SELECT *, COUNT(*) OVER(PARTITION BY competition, user) as [Count of comments] 
FROM k 
Смежные вопросы