You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询统计两列数据并生成符合条件的临时列

实现方案

1. SQL 实现(兼容绝大多数关系型数据库)

以下代码可直接生成你需要的带temp列的结果,将your_table替换为实际表名即可:

SELECT 
    t1.Col1,
    t1.Col2,
    CASE 
        WHEN IFNULL(cnt, 0) < 2 THEN t1.Col1 
        ELSE NULL 
    END AS temp
FROM 
    your_table t1
LEFT JOIN (
    SELECT Col2, COUNT(*) AS cnt 
    FROM your_table 
    GROUP BY Col2
) t2 ON t1.Col1 = t2.Col2
ORDER BY t1.Col1;

如果需要生成临时表方便后续查询,可使用如下写法(支持临时表的数据库通用):

CREATE TEMPORARY TABLE temp_result AS
SELECT 
    t1.Col1,
    t1.Col2,
    CASE 
        WHEN IFNULL(cnt, 0) < 2 THEN t1.Col1 
        ELSE NULL 
    END AS temp
FROM 
    your_table t1
LEFT JOIN (
    SELECT Col2, COUNT(*) AS cnt 
    FROM your_table 
    GROUP BY Col2
) t2 ON t1.Col1 = t2.Col2
ORDER BY t1.Col1;

-- 后续筛选可直接查询临时表,比如取前3条符合条件的数据
SELECT * FROM temp_result WHERE temp IS NOT NULL LIMIT 3;

2. Python Pandas 实现

如果是用Python处理数据表,可使用如下代码:

import pandas as pd

# 替换为你自己的数据读取逻辑,比如pd.read_excel、pd.read_csv等
df = pd.DataFrame({
    'Col1': ['0001', '0002', '0003', '0004', '0005', '0006', '0007', '0008'],
    'Col2': ['0000', '0001', '0001', '0002', '0002', '0003', '0004', '0005']
})

# 统计Col2各值出现次数
col2_cnt = df['Col2'].value_counts()
# 生成temp列
df['temp'] = df['Col1'].apply(lambda x: x if col2_cnt.get(x, 0) < 2 else None)

# 筛选temp非空的结果,可按需取行数,比如取前2条用head(2)
filtered_data = df[df['temp'].notna()]

内容的提问来源于stack exchange,提问作者Emeka Okoye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:06:03