2016-05-07 6 views
0

Моя таблица (student) структурирована следующим образом:Граф столбца в SQL Server

NAME ACCOUNT SALARY 
a   12  1222 
b  113  222222 
c   21  2221 
d   12  2432 

Я хочу, чтобы показать результаты, как это:

Desired Results

Как я могу получить, чтобы выбрать счетный счет?

ответ

0

вы можете использовать запрос следующим образом:

SELECT 
    `NAME` 
    ,`ACCOUNT` 
    ,`SALARY` 
    , (SELECT count(*) FROM abc WHERE `ACCOUNT` = a.`ACCOUNT`) AS 'ACCOUNT COUNT' 
    FROM abc a; 

образец

MariaDB []> SELECT 
    -> `NAME` 
    -> ,`ACCOUNT` 
    -> ,`SALARY` 
    -> , (SELECT count(*) FROM abc WHERE `ACCOUNT` = a.`ACCOUNT`) AS 'ACCOUNT COUNT' 
    -> FROM abc a; 
+------+---------+--------+---------------+ 
| NAME | ACCOUNT | SALARY | ACCOUNT COUNT | 
+------+---------+--------+---------------+ 
| a | 12  | 1222 |    2 | 
| b | 113  | 222222 |    1 | 
| c | 21  | 2221 |    1 | 
| d | 12  | 2432 |    2 | 
+------+---------+--------+---------------+ 
4 rows in set (0.00 sec) 

MariaDB []> 
1

Вы могли бы использовать оконные функции:

select name, account, salary, 
     count(*) over (partition by account) as account_count 
from student; 

Это не только самый простой способ выражать запрос; он также должен иметь лучшую производительность.

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