另一个快速SQL问题
我有下面的表格结构,A-另一个快速SQL问题,sql,Sql,我有下面的表格结构,A-
User -< Computer -< ComputerConfiguration -< Benchmark >- GameVersion >- Game
User--游戏版本>-游戏
它们通过PK int键连接
一个用户可以有多台计算机,计算机可以有多个配置,配置可以有多个基准,基准有FK到游戏版本,其中FK到游戏版本
如何计算每个用户的唯一游戏总数
我可以在一个查询中计算每个用户的计算机、基准测试和游戏数吗?要在答案上100%具体,我们需要知道您使用的是哪个DBE 请注意,这只是伪代码,但总体思路是
SELECT COUNT(DISTINCT Game)
FROM User
INNER JOIN Computer
INNER JOIN ComputerConfig...
为了回答您的下一个问题,如果您希望在单个查询中包含所有这些计数,则需要使用一些子查询
SELECT User, r1.ComputerCount, r2.BenchmarkCount
FROM User
INNER JOIN (SELECT User as UserId, count(*) FROM User INNER JOIN Computer ON (...) GROUP BY User) as r1 ON (User.id = r1.UserId)
INNER JOIN (SELECT User as UserId, count(Distinct Benchmark) FROM ...) as r2 ON (User.id = r2.UserId)
。。。以此类推我认为最好是暂停开发并学习一点SQL。如果您的应用程序中需要一个数据库,您将无法继续这样做。不用担心,伙计。我不是个十足的傻瓜:)谢谢。似乎子查询是不必要的,我可以在按用户ID分组时使用多个计数(不同的),它工作得很好。完美!只是出于好奇,你在使用哪个数据库?