SQL Server 比较列中的值频率SQL [已关闭]

lzfw57am  于 2023-01-04  发布在  其他
关注(0)|答案(2)|浏览(151)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
我有两个表,其中一个包含customer_id和gender(表名为customers),另一个包含customer_id和order_id(表名为sales),我想证明或反驳男性销售频率较高的假说。
我计算了M和F在两个单独的行的顺序频率,如下所示。但我想返回真或假。

gender  frequency
F       34
M       10
mzmfm0qo

mzmfm0qo1#

只是猜测

with cte as ( 
             -- Your Query -- 
            )
Select Results = case when max( case when gender='M' then [frequency] end)
                           >
                           max( case when gender='F' then [frequency] end)
                       then 'true' else 'false' end
 From  cte

结果

Results
false
dgtucam1

dgtucam12#

请尝试以下解决方案。

SQL语言

-- DDL and sample data population, start
DECLARE @tbl TABLE (gender CHAR(1), frequency INT);
INSERT @tbl (gender, frequency) VALUES
('F', 34),
('M', 10);
-- DDL and sample data population, end

;WITH rs AS
(
    SELECT * 
        , MAX(frequency) OVER (ORDER BY gender) AS max_frequency
    FROM @tbl
)
SELECT rs.gender
    , result = IIF(rs.max_frequency = rs.frequency, 'true', 'false')
FROM rs;

产出

| 性别|结果|
| - ------|- ------|
| F级|真|
| 男|假的|

相关问题