我有一个用户奖励表,它可以是各种不同的类型。SQL或子句优先级
例如,这里有资质ID 94的记录:
因此,大家可以看到,有2个用户,一个有记录的奖励类型的“平均”,“分钟“,”最大“和”最终“,另一个具有相同但没有”最终“奖。
我想要的是每个用户只得到1行。如果他们有“最终”类型的奖项,那么我想要的是“平均”,我根本不需要“最小”或“最大”。
因此,作为一个例子,这里只是一个简单的查询IN子句:
所以此基础上,我想要得到的结果是为用户34562我想要的行获得“最终”奖项,对于用户6256,我希望该行获得“平均”奖,因为他们没有“最终”记录。
我相信这应该是相当简单的,但我今天早上悲惨地失败。
我想我应该可以选择最终的记录,然后做一个联盟,但我似乎无法在我的脑海中解决它。任何人都可以将我指向正确的方向吗?
我应该指出,虽然这对我来说是MySQL,但它需要与其他数据库平台兼容。
谢谢。
做一个GROUP BY,用例表达式来做条件聚合。 – jarlh
你能否快速测试我的查询来查看它是否有效。如果没有,我会删除它。 –