2015-02-10 2 views
-4
SELECT * FROM table WHERE column2 = 'Y' 

дает мнеSQL - подсчет возврата колонки

column1 column2 
Item1  Y 
Item1  Y 
Item1  Y 
Item1  Y 
Item2  Y 
Item2  Y 
Item3  Y 
Item4  Y 

От этого, я хотел бы вернуть количество товара COLUMN1 как таковой:

Item1   4 
Item2   2 
Item3   1 
Item4   1 

Какой код может дать мне этот результат?

EDIT После попытки SELECT *, COUNT(*) я получаю сообщение об ошибке: Column 'Column1' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause

+2

Вы должны попробовать то, что писал другие .. они не отправляли «выберите \ *, COUNT (*)» ... и они включены GROUP BY .. Вы Ждете» видимо? (и я клянусь, что я разместил здесь комментарий раньше, но теперь это не так) – Ditto

ответ

2
SELECT column1, count(*) y_count 
FROM mytable 
WHERE column2 = 'Y' 
GROUP BY column1 
0

Вы можете использовать пункт GROUP BY и count как таковой:

SELECT column1, COUNT(column1) count_y 
    FROM table_name 
    WHERE column2='Y' 
    GROUP BY column1 

(Отказ от ответственности: Испытано в PostgreSQL)

+1

@bsapaka - Вы сделали SELECT *, COUNT (*) ... '. Это не похоже на 'SELECT column1, COUNT (column1) ...';) –

0

Надеется, это поможет вам

Select column1, count(*) 
from table group by column1 
Смежные вопросы