Piège
Division entière
7 / 93 vaut 0 quand les deux côtés sont des entiers.Écrivez 100.0 * a / b, ou CAST(a AS NUMERIC) / b. Postgres, Redshift, SQL Server et SQLite divisent des entiers
en entiers (7 / 2 vaut 3) ; DuckDB, Snowflake, BigQuery et MySQL renvoient 3.5. Une requête juste sur l'un peut être
fausse sur l'autre : rendez le décimal explicite, et elle est juste partout. Taux et parts demandent des décimaux.
SELECT 7 / 2 AS on_duckdb,
7 * 1.0 / 2 AS everywhere,
100.0 * 149 / 2500 AS cancel_pct;
| on_duckdb | everywhere | cancel_pct |
|---|---|---|
| 3.5 | 3.5 | 5.96 |
Pratiquer :Le taux d'annulation