Mysql 使用GROUP BY的10个唯一值
您好,我想从我的表中获取一列中的前10个唯一值以及它们出现在其中的所有行 例如,我有一个表,第2列不为空:Mysql 使用GROUP BY的10个唯一值,mysql,Mysql,您好,我想从我的表中获取一列中的前10个唯一值以及它们出现在其中的所有行 例如,我有一个表,第2列不为空: column 1 column 2 a1 a1 a2 a3 a4 a4 a4 a5 a6 a7 a8 a9 a10 我想获得第10列中具有前10个唯一值的所有行 我试着用 SELECT * FROM some_table GROUP BY some_column ORDER BY main_id DESC LIMIT 0 , 10 但对我来说,每个唯一值只有一行
column 1 column 2
a1
a1
a2
a3
a4
a4
a4
a5
a6
a7
a8
a9
a10
我想获得第10列中具有前10个唯一值的所有行
我试着用
SELECT * FROM some_table GROUP BY some_column ORDER BY main_id DESC LIMIT 0 , 10
但对我来说,每个唯一值只有一行
在我的示例中,它将从a1返回一行,从a2返回一行。。。a10的一行
如何获取具有前10个唯一值的所有行
感谢您的帮助。加入子查询
select t1.*
from table t1
inner join (select distinct main_id
from table
order by main_id desc
limit 10) t2
on t1.col10 = t2.main_id
. . 这并不能保证有效。您需要按col1顺序按minmain\u id desc limit 10从表组中选择col1。您的版本首先执行distinct,使用main_id的任意值。他的问题有点让人搞不清哪列是哪列。我怀疑排序和不同的列实际上是相同的,我相应地改变了问题。谢谢Barmaer。我不知道内部连接命令。我会读到它,看看如何管理它。如果您不知道内部联接,那么您就不会真正了解SQL。这是你应该学的第二件事。