我正在尋找一種作業方法,我可以利用GROUP_CONCAT和COUNT;即帶回某個類別(在這種情況下是i_id,其中c_num是> 1)。請看下文:
--
SELECT
A1.i_id,
group_concat(DISTINCT(cast( A1.c_num as STRING))
group_concat(DISTINCT(cast( A1.type as STRING)))
FROM A1;
| i_id | c_num | 型別|
|---|---|---|
| 1 | 1 | I |
| 1 | 10 | |
| 10 | J | |
| 2 | 15 | |
| 15 | I | |
| 2 | 16 | |
| 16 | I | |
| 3 | 3 | |
| 3 | I | |
| I
| 4 | 4 |
| 4 | I | |
| I |
我想獲得以下輸出:
我想獲得以下輸出:
但我得到的是:
| i_id | c_num | 型別||
|---|---|---|---|
| 1 | 1, 10 | I, J | |
| 2 | 15,16 | 15,16 | I |
| 3 | 3 | ||
| 3 | I | ||
| I
| 4 | 4 | |
| 4 | I | ||
| I |
本質上,我希望在有2個c_num或更多的c_num的地方帶回i_id。感謝你的幫助或任何建議的解決方法。
uj5u.com熱心網友回復:
你可以創建一個子查詢來確定多個實體,并將其與原始表連接起來,作為過濾器使用。
select
group_concat(DISTINCT(cast( A1.c_numas STRING))
from
A1
join
(select a1. id as a1_id, count(*) fromA1 group by a1. id having count(*)>/span>1) cnt_gt_1
ON A1.id =cnt_gt_1.a1_id
這里的子查詢cnt_gt_1將帶來有兩行或多行的資料--當你連接到主表時,你將得到所有有兩行或多行的資料。
uj5u.com熱心網友回復:
你似乎希望在結果集中的i_ids有多于一行。 只要使用having:
SELECTA1.i_id,
group_concat(DISTINCT(cast( A1.c_num as STRING) )
group_concat(DISTINCT(cast(A1.typeas STRING))
FROM A1
GROUP BY A1.i_id
HAVING COUNT(*) >/span> 1;
如果你特別想要超過一個c_num值,那么使用:
HAVING COUNT(DISTINCT c_num) > 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/318969.html
標籤:
上一篇:R中的分組堆積條形圖
