所以基本上,我想通过给定列有多少次值来排序查询。我通过与另一个查询重复计数的查询完成了此操作,但我想避免其他大量查询。我想这可能会有一些窍门,通过那个做我想做的事情。通过没有连接的行重复来排序查询结果
注意:我正在使用的查询量很大,并填充了公司信息,因此我将编写一个示例查询来说明我的问题。
使用
SELECT user1, rev1, user2, rev2, userCount
FROM someTable,
(SELECT user2, count(*) userCount
FROM someTable
WHERE something1 = something2) counts
WHERE something1 = something2
AND counts.user2 = someTable.user2
ORDER BY userCount DESC
我得到正确的结果,所以我试图
SELECT user1, rev1, user2, rev2
FROM someTable
WHERE something1 = something2
ORDER BY COUNT(user2) DESC
,但这并不能产生我想要的结果。
是否有一些SQL技巧可以解决这个问题?
谢谢!
我不完全理解这些例子,那么这个关闭吗? 'SELECT user1,rev1,rev2,COUNT(user2)FROM someTable WHERE something1 = something2 GROUP BY user1,rev1,rev2 ORDER BY COUNT(user2)'。如果这不正确,请发布样本'someTable'行和期望的输出 - 我确定有人可以提供帮助。 – 2013-05-06 18:37:28
你是否也希望显示“COUNT”?如果是这样,你需要把它放到'SELECT'部分。另外,你在第二个'ORDER BY'中没有'DESC',所以你可能希望你的结果按这种方式排序。 – 2013-05-06 18:39:04
因为出现错误,我不能在第二个上写下DESC。我得到'ORA-00937:不是一个单一群组功能'。我将在一分钟内尝试戈登的建议。 – 2013-05-06 18:43:42