반응형
SQL에서 출력을 정수로 선택/캐스팅
저는 사용자 입력의 하루 평균 수치 그래프를 표시해야 하는 사이트에서 작업하고 있습니다.다음 정보를 반환하는 SQL 쿼리가 이미 있습니다.
SELECT sum(number)/count(number) as average, date FROM stats WHERE * GROUP BY date
이것은 제가 찾고 있는 결과를 주지만, 결과는 세 개의 소수점 정밀도로 주어집니다.저는 이 번호를 반올림하고 싶습니다.물론 PHP나 제 템플릿 엔진으로 할 수 있지만 데이터베이스에서 이 모든 것을 할 수 있는 방법이 있는지 궁금합니다.
(MySQL에서) 출력을 정수로 캐스트하는 방법이 있습니까?
SELECT
CAST(sum(number)/count(number) as UNSIGNED) as average,
date
FROM stats
WHERE *
GROUP BY date
MySQL의 a에 대한 유효한 유형은 다음과 같습니다.
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL[(M[,D])]
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
그래서 당신은 사용할 수 있습니다.
SELECT CAST(sum(number)/count(number) AS UNSIGNED) as average...
아니면SIGNED
만약에SUM
부품은 음수가 될 수 있습니다.
연산자를 사용합니다.
mysql> SELECT 5 DIV 2;
-> 2
정수 나눗셈.플로어()와 유사하지만 BIGINT 값으로 안전합니다.BIGINT 범위를 초과하는 비정수 피연산자의 경우 잘못된 결과가 발생할 수 있습니다.
MySQL을 사용해보는건 어떨까요?FORMAT
기능?
mysql> SELECT FORMAT(12345.123456, 4);
+-------------------------+
| FORMAT(12345.123456, 4) |
+-------------------------+
| 12,345.1235 |
+-------------------------+
1 row in set (0.00 sec)
mysql> SELECT FORMAT(12345.123456, 0);
+-------------------------+
| FORMAT(12345.123456, 0) |
+-------------------------+
| 12,345 |
+-------------------------+
1 row in set (0.00 sec)
SELECT convert(int, sum(number)/count(number)) as average,
date
FROM stats
WHERE * GROUP BY date
아니면
SELECT
CAST(sum(number)/count(number) as INT) as average,
date
FROM stats
WHERE *
GROUP BY date
- 사용자 mysql 함수 라운드()
- 예제 라운드(23.33)는 23을 msyql로 반환합니다.
예제 쿼리가 다음으로 업데이트됩니다.
SELECT round(sum(number)/count(number)) as average, date FROM stats WHERE * GROUP BY date
언급URL : https://stackoverflow.com/questions/8895927/selecting-casting-output-as-integer-in-sql
반응형
'sourcecode' 카테고리의 다른 글
쉼표로 구분된 목록 MySQL에서 항목 수를 세는 방법 (0) | 2023.10.20 |
---|---|
jsch를 통해 실행하면 자바 프로그램과 mariadb 연결이 되지 않습니다. (0) | 2023.10.20 |
PowerShell에서 객체의 여러 항목을 합산하는 방법? (0) | 2023.10.20 |
PowerShell에서 점(.)과 앰퍼샌드(&)의 차이점은 무엇입니까? (0) | 2023.10.15 |
아웃라인과 경계 CSS 속성의 차이점은 무엇입니까? (0) | 2023.10.15 |