Вы действительно не правы. snytax
не имеет особого смысла ..
SELECT
*,
txs.id AS id,
CASE
WHEN txs.confirms >= 3 THEN 1
ELSE 0
END AS status,
address,
FORMAT(SUM(monto) ,8) AS balance,
tx,
fecha
FROM
txs
WHERE
txs.address IN ([SOME_LIST])
GROUP BY MIN(status)
ORDER BY status ASC
Вы используете *
, и вы делаете Aggregate .. Это, очевидно, ошибка Clear .. Потому что все столбецВы вызываете должны ввести Group by
и Ваш Group by
с Min()
.. Это также может привести к ошибке ..
агрегатные функции не разрешены в GROUP BY
Так что просто возьмите столбец, что вам нужно.
SELECT
txs.id AS id,
CASE
WHEN txs.confirms >= 3 THEN 1
ELSE 0
END AS status,
address,
FORMAT(SUM(monto) ,8) AS balance,
tx,
fecha
FROM
txs
WHERE
txs.address IN ([SOME_LIST])
GROUP BY
id,
(CASE
WHEN txs.confirms >= 3 THEN 1
ELSE 0
END),
address, tx, fecha
ORDER BY
(CASE
WHEN txs.confirms >= 3 THEN 1
ELSE 0
END) ASC
РЕДАКТИРОВАТЬ :
Поскольку ваш status
является столбцом условия .. Вместо этого поместите полное выражение ..
CASE
WHEN txs.confirms >= 3 THEN 1
ELSE 0
END AS status
Это ваш столбец Status
. Поскольку это столбец условий. Вы не можете группировать по одному уровню. Поэтому поместите свое полное выражение в условие group by
.И, как вы можете видеть ... Я поместил это выражение в Group By
и Order By
полное выражение вашего status
условия столбца ..
GROUP BY
id,
(CASE
WHEN txs.confirms >= 3 THEN 1
ELSE 0
END), -----> This are Status Condition
address, tx, fecha
ORDER BY
(CASE
WHEN txs.confirms >= 3 THEN 1
ELSE 0
END) ASC -----------> and this too..