lov*_*ing 31 mysql sql sql-order-by
我有一个表:"ID name c_counts f_counts"
我想订购所有的记录,sum(c_counts+f_counts)
但这不起作用:
SELECT * FROM table ORDER BY sum(c_counts+f_counts) LIMIT 20;
gah*_*ooa 66
不要忘记,如果要混合分组(即SUM)字段和非分组字段,则需要GROUP BY其中一个非分组字段.
试试这个:
SELECT SUM(something) AS fieldname
FROM tablename
ORDER BY fieldname
Run Code Online (Sandbox Code Playgroud)
或这个:
SELECT Field1, SUM(something) AS Field2
FROM tablename
GROUP BY Field1
ORDER BY Field2
Run Code Online (Sandbox Code Playgroud)
你总是可以像这样做一个派生查询:
SELECT
f1, f2
FROM
(
SELECT SUM(x+y) as f1, foo as F2
FROM tablename
GROUP BY f2
) as table1
ORDER BY
f1
Run Code Online (Sandbox Code Playgroud)
很多可能!
这就是你如何做到的
SELECT ID,NAME, (C_COUNTS+F_COUNTS) AS SUM_COUNTS
FROM TABLE
ORDER BY SUM_COUNTS LIMIT 20
Run Code Online (Sandbox Code Playgroud)
SUM函数将累加所有行,因此该order by子句是无用的,而您必须使用该group by子句.
你可以试试这个:
SELECT *
FROM table
ORDER BY (c_counts+f_counts)
LIMIT 20
Run Code Online (Sandbox Code Playgroud)