쿼리 결과를 mysql에서 10진수로 캐스트
내가 가진 정보:
- Mariadb 버전 : 10.3.10
자리가 있습니다.visits
두개의 열이 있는.userid
그리고.ref_url
,어디에userid
사용자의 ID이며.ref_url
해당 URL에 해당합니다.userid
참조했습니다.열에 빈 공간ref_url
직접 방문에 해당하며 고려되지 않습니다.
표:vists
-------------------------------------
| userid | ref_url |
-------------------------------------
| 1 | |
| 1 | https://demosite.com |
| 1 | https://demosite2.com |
| 1 | |
| 1 | https://demosite3.com |
| 1 | |
-------------------------------------
제가 기대하는 바는 다음과 같습니다.
총 개수를 세는 쿼리를 만들고 싶습니다.ref_url
어떤 특정한 사건에 대한 사건들userid
(ref_url 필드에 있는) 빈 공간을 제외하고, 카운트를 100 이내로 제한하고 카운트에 0.5를 곱하여 별칭 열에 DECIAL로 결과를 나타냅니다.estimated value
.
------------------------------------
| userid | estimated value |
------------------------------------
| 1 | 1.50 |
------------------------------------
내 쿼리:
SELECT userid,
CAST(((
SELECT COUNT(NULLIF(TRIM(ref_url), ''))
FROM visits
LIMIT 0,100
) * 0.5) AS DECIMAL(12,2)) AS 'estimated value'
FROM visits
GROUP BY userid
위의 쿼리는 구문 오류를 던집니다.
SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 '2)' 근처에서 사용할 수 있는 올바른 구문을 확인하십시오.)
쿼리가 작동하는 시간은DECIMAL(12,2)
로 대체됩니다.UNSIGNED
.
관리자와 함께 DECIAL(12,2) 출력과 함께 사용할 경우 쿼리는 다음과 같습니다.
[1329] 데이터 없음 - 0개의 행을 가져오거나 선택 또는 처리했습니다.
마리애드브에게 직접 재판했을 때 말입니다허가 문제가 발생할 가능성이 있습니까?
LIMIT
데이터가 수집된 후에 발생합니다.하위 쿼리는 하나의 행만 수집하므로LIMIT
관계가 없습니다.그러나 MySQL이 아닌 MariaDB를 사용하고 있으므로 다음과 같이 말할 수 있습니다.
LIMIT ROWS EXAMINED 100
(주의사항:저는 이것을 테스트하지 않았습니다.)
참조: https://mariadb.com/kb/en/library/limit-rows-examined/ -- MariaDB 5.5.21 이후
에 관해서는DECIMAL
-- 대신에CAST(expression AS DECIMAL(10,2))
,사용하다
FORMAT(expression, 2)
언급URL : https://stackoverflow.com/questions/53321999/cast-query-result-as-decimal-in-mysql
'programing' 카테고리의 다른 글
MYSQL SELECT 1년 전 기록 (0) | 2023.10.05 |
---|---|
보기 페이지에서 현재 조각 인스턴스 가져오기 (0) | 2023.10.05 |
jQuery의 부록 반대쪽 (0) | 2023.10.05 |
'파일' 속성이 스크립트 형식의 'EventTarget' 오류에 없습니다. (0) | 2023.10.05 |
표준 Excel 수식은 사용하는 Excel 버전에 따라 다르게 동작합니다. (0) | 2023.10.05 |