SQL计数特定记录的结果数

时间:2014-06-10 14:40:01

标签: sql inner-join

我有2个表通过INNER JOIN链接。这些是我的表格:

T1
ID    name  Account
1     name1  123
1     name1  143

T2
AccountNum    ID
222           1
111           1

我想添加特定名称的ByID总数,我的输出应该是

ID    name  Account  NumOfByAcc
 1    name1   123    2

在上表中,ID 1有两个帐号(T2),我如何使用两个表之间的INNER JOIN计算特定ID的帐号总数。这是我的查询,但我不确定如何完成我的第二个选择语句:

SELECT        Table1.ID, Table1.NAme, Table2.Account AS Expr1, 

                     SELECT count() AS NumOfByAcc//2nd select statement 
FROM            Table2 INNER JOIN
                     Table1 ON Table2.ID= Table1.ID

3 个答案:

答案 0 :(得分:0)

  

我不确定如何完成我的第二个选择陈述:

像这样:

SELECT
   t1.ID
,  t1.NAme
,  t2.Account AS Expr1
,  (SELECT count(*) FROM Table1 tt WHERE tt.ID=t2.ID) AS NumOfByAcc 
FROM  Table2 t2
INNER JOIN Table1 t1 ON t2.ID= t1.ID

请注意使用别名t1t2tt。当同一个表需要多次参与单个查询时,别名提供了一种在表达式中引用该表以根据需要过滤和/或连接记录的方法。

答案 1 :(得分:0)

select *, (select count(*) from T2 where T2.Id = T1.Id) as NumOfByAcc
from T

答案 2 :(得分:0)

尝试:

SELECT      T1.id,
            T1.name
            T1.account,
            V1.accountcount
FROM        T1
INNER JOIN
(
    SELECT      T2.id,
                COUNT(*) accountcount
    FROM        T2
    GROUP BY    T2.id
) V1
ON          T1.id = V1.id

执行繁重任务的GROUP BY条款。