我正在尝试编写单个查询以获取一个表中单个ID的计数,然后获取每个计数并将它们乘以另一个表中的字段以获得不同的总计。例如,一个表将具有这些记录:
cat_id_FK
---------
100
100
101
101
101
和另一张表这些记录:
cat_id_PK | cat_amount
---------- ----------
100 500.00
101 100.00
我希望结果集为:
cat_id_PK | total
--------- -------
100 1000.00
101 300.00
我还想在包含主键的表中包含其他列字段。
答案 0 :(得分:3)
只需做一个简单的连接和SUM。
SELECT
cat_id_pk,
sum(cat_amount)
FROM
t1 inner join t2
on t1.cat_id_FK = t2.cat_id_PK
GROUP BY
cat_id_pk
加入进行乘法运算。你可以看看你是否只做normal select结果
+-----------+------------+
| CAT_ID_PK | CAT_AMOUNT |
+-----------+------------+
| 100 | 500 |
| 100 | 500 |
| 101 | 100 |
| 101 | 100 |
| 101 | 100 |
+-----------+------------+
答案 1 :(得分:2)
select a.cat_id_PK,
count(*)*(select count(*)
from tab_2
where tab_2.fk=a.cat_id_PK)
from tab1 a