【问题标题】:SQLite SELECT statment on one table一张表上的 SQLite SELECT 语句
【发布时间】:2013-11-09 23:14:42
【问题描述】:

我有一个带有列的表格:game-type-score-time,我想在一个游戏中选择最好的分数。在那个分数上,我想在特定的游戏、类型和分数上获得最低的时间。

我喜欢 group by,但没有得到我想要的。

SELECT game, type, MAX(score),MIN(time)
FROM table
GROUP BY game,type 

我想要的: 如果这是我的桌子:

 0/1/0/672
 0/1/0/749
 0/1/1/2091
 0/1/1/3252

 0/5/0/5088
 0/5/0/5504
 0/5/1/6482
 0/5/2/9408
 0/5/2/24616
 0/5/3/6592 
 0/5/4/8706

 1/1/0/700
 1/1/1/1151

 1/5/5/4808

 3/1/1/1038

我想要这样的输出:

 0/1/1/2091
 0/5/4/8706
 1/1/1/1151
 1/5/5/4808
 3/1/1/1038

获得此结果的最有效方法是什么?

【问题讨论】:

    标签: mysql sql sqlite select


    【解决方案1】:

    您不能在单个聚合中执行此操作:

    SELECT s.game, s.type, s.score, MIN(t.time) AS time
    FROM (
        SELECT tt.game, tt.type, MAX(tt.score) AS score 
        FROM table tt 
        GROUP BY tt.game, tt.type
    ) s 
    INNER JOIN table t ON s.game = t.game AND s.type = t.type AND s.score = t.score
    GROUP BY s.game, s.type, s.score
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 2012-07-24
      • 2014-10-30
      • 1970-01-01
      相关资源
      最近更新 更多