SQL最有效的查询
我在下面的3个表上创建了两个查询,我只想听听别人对我是否最有效地执行它们的意见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) 哪个客户部门的广告点击率
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-谢谢