我有表A,第1栏。
此表包含以下值:
1
2
3
3
4
4
4
5
我有表B,第2栏。
列出了某些值,例如:
1
3
4
我需要一个查询来计算表A中的每个唯一值,但只有在表B中存在该值时才会计算。
所以上面的结果是:
1的数量为1, 3的数量为2, 4的数量为3.
我唯一的问题是我没有这种能力。有任何帮助吗?
答案 0 :(得分:1)
根据您的问题,以下内容可以解决您的问题。
select b.column1, count(a.column2) from tableb as b inner join tablea as a on b.column1 = a.column2 group by b.column1
由于您只想要两个表中的记录,我使用的是内连接。然后我只是按tableb中找到的ID进行分组,并获取tablea中的行数。
如果您有任何问题,请告诉我。
有关内部联接的详细信息,请参阅:http://www.w3schools.com/sql/sql_join_inner.asp,对于分组依据,请参阅:http://www.w3schools.com/sql/sql_groupby.asp
答案 1 :(得分:1)
我会使用INNER JOIN
聚合函数
GROUP BY
查询
SELECT a.column1,
count(a.column1) as total
FROM tablea a
INNER JOIN tableb b
ON a.column1 = b.column2
GROUP BY a.column1
答案 2 :(得分:0)
试试这个
<强> MSSQL 强>
Select Distinct Column1,Count(Column1) Over (Partition by Column1)
From Table1
Where Column1 IN (Select Column2 From Table2)
<强>的MySQL 强>
Select Column1,Count(Column1)
From Table1
Where Column1 IN (Select Column2 From Table2)
group by column1
答案 3 :(得分:0)
SELECT column1,COUNT(column1)
FROM table1
WHERE column1 IN
(SELECT DISTINCT column2 FROM table2)
GROUP BY column1