我需要从统计信息不为零的链接表中选择所有链接:
Table tlink:
linkid, linkname, userid
Table tuser:
userid, username
Table tfact:
factid, factorder, userid
Table tstat:
statid, linkid, userid
订阅者中的用户订购记录在tfact。
中的点击次数用户可以创建多个以tlink记录的链接。
任何链接上的每次点击都会记录在tstat中。
网页应过滤使用了有序点击的所有链接。
EG公司ABC每次点击3次,每次点击100次,总共点击300次。
然后他们创建几个链接,这些链接全部显示,直到使用总共300次点击。
我已经尝试了几个查询//子查询,但无济于事,并希望得到任何帮助。
答案 0 :(得分:0)
这样的东西?
SELECT
l.linkid,
l.linkname,
l.userid,
u.username,
f.factorder - s.clickCount AS clicksUnused
FROM
tlink l
INNER JOIN tuser u ON u.userid = l.userid
INNER JOIN tfact f ON f.userid = l.userid
INNER JOIN (
SELECT
linkid,
userid,
COUNT(*) AS clickCount
FROM
tstat
GROUP BY
linkid,
userid
) s ON s.linkid = l.linkid AND s.userid = l.userid
答案 1 :(得分:0)
@NGLN
您好
我很抱歉没有提前回答,但已经离开了几天。
我认为我的工作正常:
SELECT L.linkid,F.OrderSum - S.clickCount AS clicksUnused FROM tlink AS L INNER JOIN(SELECT userid,SUM(factorder)AS OrderSum FROM tfact GROUP BY userid)AS F ON F.userid = L.userid INNER JOIN(SELECT userid,COUNT(*)AS clickCount FROM tstat GROUP BY userid)AS S ON S.userid = L.userid --WHERE - clicksUnused> = 1
现在唯一的问题是我无法过滤出clickUnused高于1的链接。
任何想法,谢谢,迈克
更新了这项工作
WHERE F.OrderSum> S.clickCount
这是正确的方法吗?