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
我只想 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