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

如何按最后4列中TRUE值的数量对SQL查询结果排序?

表格数据提取与排序实现

需求说明

我有一个指定结构的表格,需要提取Validity列的数据,并按照表格最后4列中TRUE值的数量从多到少排序。预期输出示例如下:

1110  // 4个true值
1001  // 2个true值
1000 // 1个true值

实现方案(以SQL为例)

假设表格最后4列分别命名为col1、col2、col3、col4,可以通过以下步骤实现:

  1. 计算每一行最后4列中TRUE值的总数
  2. 按照该总数降序排序,输出Validity值及对应的true数量注释

对应的SQL语句如下:

-- 先计算每行的true数量,再排序输出结果
SELECT CONCAT(validity, ' // ', true_count, '个true值') AS 输出结果
FROM (
    SELECT 
        validity,
        -- 逐列判断是否为TRUE,累加计数
        (CASE WHEN col1 THEN 1 ELSE 0 END +
         CASE WHEN col2 THEN 1 ELSE 0 END +
         CASE WHEN col3 THEN 1 ELSE 0 END +
         CASE WHEN col4 THEN 1 ELSE 0 END) AS true_count
    FROM your_table  -- 替换为你的表名
) temp_table
ORDER BY true_count DESC;

如果只需要输出Validity值,可简化语句:

SELECT validity
FROM (
    SELECT 
        validity,
        (CASE WHEN col1 THEN 1 ELSE 0 END +
         CASE WHEN col2 THEN 1 ELSE 0 END +
         CASE WHEN col3 THEN 1 ELSE 0 END +
         CASE WHEN col4 THEN 1 ELSE 0 END) AS true_count
    FROM your_table
) temp_table
ORDER BY true_count DESC;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:30:47