我想选择在两列之间出现不止一次的所有年数。
这是我目前所拥有的:
SELECT YEAR(`Date1`), COUNT(*) as Counter
from (SELECT YEAR(`Date1`)
from table1 UNION
SELECT YEAR(`date2`)
from table1
) as year
GROUP by YEAR(`date1`)
WHERE Counter > 2;
我很感激任何建议!
谢谢。
最佳答案
当您使用 GROUP BY
时,您需要使用 HAVING
而不是 WHERE
,如下所示。
SELECT Y ,
COUNT(*) AS Counter
FROM (
SELECT DISTINCT YEAR(`Date1`) Y
FROM table1
UNION ALL
SELECT DISTINCT YEAR(`date2`) Y
FROM table1) AS YEAR
GROUP BY Y
HAVING COUNT(*) > 2;
注意:您不需要在外部查询中再次输入 YEAR
,也可以为每一列输入 DISTINCT
,这样您就不会重复对于专栏。
关于mysql - 返回在两列中多次出现的 Year-Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55204837/