sql - SQL Server 错误:当子查询没有用 EXISTS 引入时,选择列表中只能指定一个表达式
问题描述
declare @mode int
select
@mode = (select top 1 order_dow, count(*)
from orders_denorm
group by order_dow
order by 2 desc)
我正在尝试order_dow
使用 SQL Server 查找列的模式。我收到以下错误消息:
当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。
但是,只有不使用的查询才能select @mode
正常工作。
解决方案
您需要该模式,因此您只需要一列:
select @mode = (select top 1 order_dow from orders_denorm group by order_dow order by count(*) desc);
也许你想要两者:
select @mode = order_dow, @mode_cnt = cnt
from (select top 1 order_dow, count(*) as cnt
from orders_denorm
group by order_dow
order by count(*) desc
);
推荐阅读
- azure - Azure VM 加密:aadAppname
- mysql - SQL:从另一个数据集中添加多个列
- jmeter - 如何将值bean shell采样器发送到jmeter中的rest api
- javascript - 有没有办法获取模型元素的坐标?
- python - 如果没有命中,则合并 2 个数据框并添加 NaN
- tkinter - 使用 cx_freeze 创建的 tkinter 应用程序的 MSI 不起作用
- php - 如何从textarea获取多行数据到mysql
- sql - 来自动态列的 SQL 数据透视表
- configuration - 你能用 Cargo 在依赖树上分享 `cfg!` 吗?
- c# - Xamarin Forms:启动阻塞 GC 显式