SQL - 来自 SELECT 的 COUNT 个结果
SQL - COUNT results from SELECT
我想从所有资产的利润列中计算最大值的所有重复(它们重复,我想从每个唯一重复中选择最好的结果),最后根据结果对结果进行分组策略列的值。
我对 Perl 使用 DBD::CSV,它使用 SQL 语句,如下所示:http://search.cpan.org/~rehsack/SQL-Statement-1.412/lib/SQL/Statement/Syntax.pod
但这并不重要。我最关心的是改进语法,剩下的事情我应该处理。
SELECT COUNT(*) AS dupa
FROM (SELECT asset, strategy, MAX(profit)
FROM a1.csv
GROUP BY strategy);
输出:Bad table or column name: 'SELECT' is a SQL reserved word!
另一个例子:
SELECT * AS xxx FROM (SELECT strategy, profit FROM a1.csv GROUP BY strategy)
输出:Bad table or column name: 'SELECT' is a SQL reserved word!
这只是一个例子。我尝试了不同的组合,但总是出错。我想问一下我的语法有什么问题?
您可以将来自 'FROM' 子句的查询存储在 CTE 中,如下所示:
with cte as(
SELECT asset, strategy, MAX(profit) FROM a1.csv GROUP BY strategy
)
Select count(*)
From cte
这是另一种方法,请你试试下面的代码:
SELECT COUNT(t.*) AS dupa
FROM (SELECT asset, strategy, MAX(profit)
FROM a1.csv
GROUP BY strategy) t
好的,这是另一种使用临时 table 的方法,就像我之前说的那样:
CREATE TEMP TABLE TempTable AS
SELECT asset, strategy, MAX(profit) FROM a1.csv GROUP BY asset, strategy
SELECT COUNT(*) FROM TempTable
我想从所有资产的利润列中计算最大值的所有重复(它们重复,我想从每个唯一重复中选择最好的结果),最后根据结果对结果进行分组策略列的值。
我对 Perl 使用 DBD::CSV,它使用 SQL 语句,如下所示:http://search.cpan.org/~rehsack/SQL-Statement-1.412/lib/SQL/Statement/Syntax.pod
但这并不重要。我最关心的是改进语法,剩下的事情我应该处理。
SELECT COUNT(*) AS dupa
FROM (SELECT asset, strategy, MAX(profit)
FROM a1.csv
GROUP BY strategy);
输出:Bad table or column name: 'SELECT' is a SQL reserved word!
另一个例子:
SELECT * AS xxx FROM (SELECT strategy, profit FROM a1.csv GROUP BY strategy)
输出:Bad table or column name: 'SELECT' is a SQL reserved word!
这只是一个例子。我尝试了不同的组合,但总是出错。我想问一下我的语法有什么问题?
您可以将来自 'FROM' 子句的查询存储在 CTE 中,如下所示:
with cte as(
SELECT asset, strategy, MAX(profit) FROM a1.csv GROUP BY strategy
)
Select count(*)
From cte
这是另一种方法,请你试试下面的代码:
SELECT COUNT(t.*) AS dupa
FROM (SELECT asset, strategy, MAX(profit)
FROM a1.csv
GROUP BY strategy) t
好的,这是另一种使用临时 table 的方法,就像我之前说的那样:
CREATE TEMP TABLE TempTable AS
SELECT asset, strategy, MAX(profit) FROM a1.csv GROUP BY asset, strategy
SELECT COUNT(*) FROM TempTable