2

http://sqlfiddle.com/#!2/1a2df

我正在尝试通过计算 SUM( valid)的 MAX 值来选择列“photo_name”

首选结果是“test5.jpg”,但经过数小时的尝试,我仍然无法弄清楚,

下面是我以前的方法,但它不起作用

SELECT photo_name FROM
(
SELECT  a.*
    FROM    test a  
    INNER JOIN
    (
    SELECT  *, SUM(valid) v
    FROM    test
    WHERE   page_id = 3 AND `valid` = 1

    ) b ON  MAX(b.v)
)c

请帮忙,

4

1 回答 1

0

像这样的东西应该工作。它对valid每张照片的列求和,从高到低排序,然后将结果限制在第一行:

SELECT photo_name, SUM(valid) AS sum_valid
FROM test
GROUP BY photo_name
ORDER BY sum_valid DESC
LIMIT 1
于 2013-07-16T20:45:52.583 回答