Group By语句作为列

Her*_*art 2 sql group-by inline

我有一个伪SQL语句

select [orderid], [productname], [price], [productid_FK]
from Order
Run Code Online (Sandbox Code Playgroud)

这将给我5行:

在此输入图像描述

结果是5行,其中3行的[productid_FK]为"2".此FK列引用名为[Product]的表.

现在假设我想要一个基于[productid_FK]的额外列.

该列必须包含另一个名为[products]的表中的产品总数

我可以通过加入当前的伪查询来实现这一点吗?

Con*_*rix 6

获得结果的一种方法是子查询.根据数据库的不同,有几种方法可以做到这一点.我经常这样做

SELECT o.[orderid], 
       o.[productname], 
       o.[price], 
       [productid_FK], 
       p_counts.k 
FROM   order o 
       INNER JOIN (SELECT productid_fk, 
                          COUNT(product_id) k 
                   FROM   products 
                   GROUP  BY productid_fk) p_counts 
         ON o.productid_fk = p_counts.productid_fk 
Run Code Online (Sandbox Code Playgroud)