Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-将字段设置为另一个表中的计数_Sql - Fatal编程技术网

SQL-将字段设置为另一个表中的计数

SQL-将字段设置为另一个表中的计数,sql,Sql,我试图在目标表中设置一个字段作为另一个表中电子邮件地址的计数。电子邮件地址可能会在我的另一个表中出现很多次,我想计算总数并将其设置为我的目标字段值 SELECT a.* ,a.PickedUp_Count AS COUNT(b.Emailaddress) FROM Master_List a INNER JOIN Picked_Up b ON a.Emailaddress = b.Emailaddress 最好不要使用*选择器,因为通常您希望明确地知道

我试图在目标表中设置一个字段作为另一个表中电子邮件地址的计数。电子邮件地址可能会在我的另一个表中出现很多次,我想计算总数并将其设置为我的目标字段值

SELECT 
  a.*
 ,a.PickedUp_Count AS COUNT(b.Emailaddress)
FROM 
  Master_List a
INNER JOIN 
  Picked_Up b
    ON 
      a.Emailaddress = b.Emailaddress

最好不要使用*选择器,因为通常您希望明确地知道您从表中得到了什么。您不必在select中展开它,但必须确定如何在group by column中聚合所有单独的列

SELECT 
     a.<field1>
     a.<field2>
    ....
    ,COUNT(*) as PickedUp_Count
FROM 
    Master_List a 
    INNER JOIN Picked_Up b 
        ON a.Emailaddress = b.Emailaddress
GROUP BY
    <field1>
   ,<field2>
   .... 
选择
A.
A.
....
,计数(*)作为PickedUp\u计数
从…起
主列表a
内部连接已拾取\u-Up b
在a.Emailaddress=b.Emailaddress上
分组
,
.... 
group by必须包括select中列出的、尚未在select中聚合的所有字段,即任何不属于计数的字段


此外,值得注意的是,PickedUp_Count是您选择的任意随机名称。

如果您将代码格式化为易于阅读的格式,人们会更愿意为您提供帮助。是否将
计数(b.Emailaddress)改为PickedUp_Count
?不,他也会错过group by语句。您需要完成所有列的聚合。我认为我们需要更多的内容。至少是表架构。样本数据也会有很大帮助。下面是一些建议的工具@Gerik是的,你是对的,sql也需要完全聚合。是的,*在查看表时适用于临时sql。在准备应用程序将运行的真正SQL时,最好远离*。