select multiple/many 个名字中只有一个名字

select only one name from multiple/many names

我只想 select 来自 table 的一个名字,其中此人(名字)在 table..

中出现次数最多

table 看起来像(import_rec ix_k):

product_name     product_id     man_name
  product1           1        mame1|''|last_name1|''|ID
  product2           2        name1|''|last_name1|''|ID
  product3           3        name2|''|last_name2|''|ID
  product4           4        name1|''|last_name1|''|ID
  product5           5        name1|''|last_name1|''|ID
  product6           6        name3|''|last_name3|''|ID

编辑: 所以我只想 select name1-last_name1 来自 table

我的查询:

select u.name||' '||u.last_name from X_USERS u, items x, import_rec ix_k 
where u.id = x.id_man and x.id = ix_k.code_id and 
"actual_table".rid = ix_k.rid_o and rownum = 1

如何select名字&last_name在table中出现次数最多的?

你想要

only one name from table where the person(name) is the most times in the table

如果您使用的是12c及以上版本,您可以使用:

select * FROM t  
   ORDER BY COUNT(*) OVER ( PARTITION BY man_name ) 
DESC FETCH FIRST 1 ROWS ONLY;

对于旧版本,您可以将 ROWNUM 与子查询一起使用。

select * FROM
( select * FROM t  
     ORDER BY COUNT(*) OVER ( PARTITION BY MAN_NAME ) 
DESC ) WHERE rownum = 1;

您可以使用 Common Table Expression and ROW_NUMBER。您让 rownumber 函数计算 [man_name] 有多少个重复项,并按 rownumber 降序排列 table,因此最高计数将在 table 中排在第一位。 然后你 select 你订购的第一行 table 包含行号列。 它看起来像这样;

WITH CTE AS(
SELECT ROW_NUMBER() OVER(PARTITION BY man_name ORDER BY Product_id) AS rn
, product_name
, product_id
, man_name
FROM (yourtable/s)
)
SELECT TOP 1  
  rn 
, product_name
, product_id
, man_name
FROM CTE 
ORDER BY rn DESC