mySQL命令中使用';分组依据';和';哪里在';在一起
我有一个包含以下列的表:mySQL命令中使用';分组依据';和';哪里在';在一起,mysql,sql,Mysql,Sql,我有一个包含以下列的表:DATE、TICKER和ID. 本质上,我试图用下面的代码做的是选择所有的股票代码及其对应的ID(它可以有多个ID)。但是,在表中,有多个条目,其中,股票代码可以具有相同的ID,但属于不同的日期,因此在本例中,我选择日期最小的ID SELECT MIN(DATE), TICKER, ID FROM Names GROUP BY TICKER, ID WHERE TICKER IN (
DATE、TICKER和ID.
本质上,我试图用下面的代码做的是选择所有的股票代码及其对应的ID(它可以有多个ID)。但是,在表中,有多个条目,其中,股票代码可以具有相同的ID,但属于不同的日期,因此在本例中,我选择日期最小的ID
SELECT
MIN(DATE),
TICKER,
ID
FROM Names
GROUP BY
TICKER,
ID
WHERE TICKER IN ('A', 'B')
现在,当我独立地尝试这些命令时,它是有效的,但是我相信当我将groupby
和WHERE IN
命令组合在一起时,会出现一些错误,因为我得到了一个语法错误
如果有什么不清楚的地方,请告诉我,我会尽力澄清。
WHERE
子句位于GROUP BY
子句之前
SELECT MIN(DATE), TICKER, ID
FROM Names
WHERE TICKER IN ('A', 'B')
GROUP BY TICKER, ID
在
WHERE
子句之前使用GROUP BY
子句,维护子句序列
SELECT MIN(DATE), TICKER, ID
FROM Names
WHERE TICKER IN ('A', 'B')
GROUP BY TICKER, ID
如果没有GROUP BY,其中IN将位于最后,但如果GROUP BY存在,则应位于最后。像这样使用
SELECT MIN(DATE),
TICKER, ID
FROM Names
WHERE TICKER IN ('A', 'B')
GROUP BY TICKER, ID
执行顺序 执行SQL查询时,将按以下顺序执行
FROM
ON
JOIN
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
ORDER BY
TOP
这是执行顺序
SELECT MIN(DATE),TICKER, ID
FROM Names
WHERE TICKER IN ('A', 'B')
GROUP BY TICKER, ID
有关更多信息,请使用相同的id,嗯?那么你的主键是什么呢?哦,看来你现在一定已经知道了谢谢,现在开始工作了,你介意告诉我子句序列吗,我粗略地浏览了一下SQL,从来没有遇到过。你可以检查这个