Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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_Sql Server - Fatal编程技术网

SQL最有效的查询

SQL最有效的查询,sql,sql-server,Sql,Sql Server,我在下面的3个表上创建了两个查询,我只想听听别人对我是否最有效地执行它们的意见 User (**user_id**, group, age, gender, timestamp, activity_type) Client (**client_id**, sector, specified_age, specified_gender) Advertise (a**d_id, user_id, client_id, time**, is_click, length) 哪个客户部门的广告点击率

我在下面的3个表上创建了两个查询,我只想听听别人对我是否最有效地执行它们的意见

User (**user_id**, group, age, gender, timestamp, activity_type)

Client (**client_id**, sector, specified_age, specified_gender)

Advertise (a**d_id, user_id, client_id, time**, is_click, length)
哪个客户部门的广告点击率最高

 SELECT c.client_id, c.sector, COUNT(a.is_click) as Clicked_Ads 
    FROM Advertise a, Client c
    WHERE a.client_id = c.client_id
    GROUP BY COUNT(a.is_click)
    ORDER BY c.client_id
女性最常在什么时候看广告

 SELECT a.ad_id, a.client_id, u.user_id, u.timestamps, COUNT(u.timestamps)
    FROM Advertise a, User u
    WHERE u.gender = “Female”, a.user_id = u.user_id
    ORDER BY 
    GROUP BY COUNT(u.timestamps

)

您的第一个查询应该如下所示:

SELECT c.sector, COUNT(a.is_click) as Clicked_Ads 
FROM Advertise a JOIN
     Client c
     ON a.client_id = c.client_id
GROUP BY c.sector
ORDER BY COUNT(a.is_click) DESC
LIMIT 1;
注:

  • 使用正确、明确的
    JOIN
    语法。切勿在
    FROM
    子句中使用逗号
  • 问题是关于
    扇区
    ,在
    GROUP BY
    子句中不需要任何其他内容
  • 无论如何,您不能通过聚合函数对
    进行分组
  • 大概您希望通过和限制1获得顶部扇区

一个问题就足以回答一个问题。

对于MS SQL server,可以在所有客户端中查找点击次数最多的客户端扇区

SELECT TOP 1 WITH TIES client_id,sector, Clicked_Ads 
 (
   SELECT c.client_id, c.sector, SUM(a.is_click) as Clicked_Ads 
    FROM Advertise a JOIN Client c
    ON a.client_id = c.client_id
    GROUP BY c.client_id, c.sector
  )T
ORDER BY Clicked_Ads  DESC

什么是关系数据库管理系统?是mysql还是sql server?删除一个标记并将其固定到sql server-谢谢