2013-08-28 3 views
-2

Может ли кто-нибудь помочь в предоставлении SQL-запроса, следует использовать для вывода значения «columna», которое имеет максимальное значение «columnb» как «Active». Значит, в столбце b есть значение «Актив», я хочу вытащить значение columna, которое имеет максимальное значение Active n columnb.Совет, необходимый для SQL-запроса

Ищу выход быть Columna = M1 и Count = 4

columna  columnb 
M1   Active 
M1   Active 
M1   Active 
M1   Active 
M2   failed 
M2   failed 
M2   failed 
M3   pending 
M3   pending 
M3   pending 
+3

Вопрос неясен, пожалуйста, укажите, что вы пробовали, примеры данных и ожидаемые результаты. – ganders

+0

Каковы типичные значения столбца B? –

+2

Какие СУБД вы используете? Синтаксис для получения максимальной строки может отличаться. –

ответ

1

результаты вы запрос будет продуцируемых:

SELECT columna,COUNT(*) 
FROM Table 
WHERE columnb = 'Active' 
GROUP BY columna 
1
SELECT top 1 columna,COUNT(*) as cnt 
FROM Table1 
WHERE columnb = 'Active' 
GROUP BY columna 
order by cnt desc 

FIDDLE

+0

Позвольте мне попробовать это и вернуться. – user2725264

0
SELECT columna,count(*) FROM TABLE_NAME where columnb = "Active" GROUP BY columna 
0

Синтаксис немного отличается между RDMBS-es, но логика остается. Фильтрация строк на основе columnb, группировать их по columna, заказать их на count(*) и выберите верхний 1

SQL Server:

SELECT TOP 1 columna, COUNT(*) AS Count 
FROM YourTable 
WHERE columnb = 'Active' 
GROUP BY columna 
ORDER BY COUNT(*) DESC 

SQLFiddle DEMO

MySQL:

SELECT columna, COUNT(*) AS Count 
FROM YourTable 
WHERE columnb = 'Active' 
GROUP BY columna 
ORDER BY COUNT(*) DESC 
LIMIT 1 

SQLFiddle DEMO

Смежные вопросы