2017-08-30 74 views
0

我有这个表:SQL服务器的数量比多列

+-----------+--------+ 
| FILE CODE | STATES | 
+-----------+--------+ 
| TEST 1 | CA  | 
| TEST 2 | CA  | 
| TEST 1 | CA  | 
| TEST 2 | CA  | 
| TEST 3 | CA  | 
| TEST 4 | CA  | 
| TEST 5 | CA  | 
| TEST 1 | AZ  | 
| TEST 1 | LI  | 
| TEST 4 | CA  | 
| TEST 4 | CA  | 
+-----------+--------+ 

这应该是输出 (请参阅图像下方的票,但对输出一些麻烦)

+----------+--------+---------+ 
| FILECODE | STATES | COUNTS | 
+----------+--------+---------+ 
| TEST 1 | CA |  2 | 
| TEST 1 | AZ |  1 | 
| TEST 1 | LI |  1 | 
| TEST 2 | CA |  2 | 
| TEST 3 | CA |  1 | 
| TEST 4 | CA |  3 | 
| TEST 5 | CA |  1 | 
+----------+--------+---------+ 

代码:

SELECT 
    S.States, S.FIRST_MORTGAGE_PRIMARY_LOAN_TYPE, C.COUNTS 
FROM 
    Master_Files S 
INNER JOIN 
    (SELECT 
     States, FIRST_MORTGAGE_PRIMARY_LOAN_TYPE, 
     COUNT(FIRST_MORTGAGE_PRIMARY_LOAN_TYPE) as COUNTS 
    FROM 
     Master_Files 
    GROUP BY 
     States, FIRST_MORTGAGE_PRIMARY_LOAN_TYPE) C ON S.FIRST_MORTGAGE_PRIMARY_LOAN_TYPE = C.FIRST_MORTGAGE_PRIMARY_LOAN_TYPE 
                AND S.States = C.States 

enter image description here

+7

这是一个基本的'group by'。如果您遇到困难,请先尝试并发布问题。 –

+2

提示:使用计数()和组 –

+0

我已经使用,请参阅上面的图像,这是我的问题,它的计数,但有多个测试1. –

回答

2

没有理由在这里使用子查询一些练习。这个查询应该足够了:

SELECT states, 
     first_mortgage_primary_loan_type, 
     Count(first_mortgage_primary_loan_type) AS COUNTS 
FROM master_files 
GROUP BY states, first_mortgage_primary_loan_type 
+0

它像一个魅力感谢,@ Kashif Qureshi –

0

只给你一个提示::)

SELECT FILECODE, STATES, COUNT(*) AS COUNT 
FROM Table_Name 
GROUP BY FILECODE, STATES 

正如评论所说,这是一个基本的GROUP BY问题。 我劝你做出关于AGGREGATE FUNCTIONSAVGMAXMINCOUNT等)和GROUP BY声明

+0

尝试搜索它,但无法看到任何可以使我的输出,我使用COUNT和GroupBy。 –