데이터 베이스 MySQL 튜토리얼 mysql函数实例-统计日存留率_MySQL

mysql函数实例-统计日存留率_MySQL

Jun 01, 2016 pm 01:32 PM
mysql 휴대폰 데이터베이스 테이블 통계 소프트웨어

bitsCN.com

mysql函数实例-统计日存留率

 

1.数据库表

手机用户的信息保存在一张visitor_user的表中,其中包含了用户使用手机app软件时,可以获取的数据,包括: 商家id、手机设备号、下线时间等信息。

 

2.功能分析与设计

数据统计报表一般都采用DB的存储过程或函数进行统计,并将数据保存到数据库表中,提供前台应用查询和展示。对于实时性的报表需求,建议在非业务库上进行统计。一般主库对外提供业务服务,通过复制等机制将业务数据存储到专门的数据库,或者专门的物理节点上,这样就有效的避免了报表统计功能对正常业务的影响。

 

3.实现

1.首先,从用户日统计表中将前天的登录用户统计到存留明细表中。

2.然后,从用户日统计表中将昨天的登录用户统计出来,并将前天、昨天都登录的用户的存留状态设置为1。

3.然后,从存留明细表中统计昨天用户的存留数、存留率,并保存到存留表中。

 

执行统计采用了mysql的事件机制,定时触发调用统计函数,进行数据统计。

每天凌晨4点钟,开始统计昨天的日存留率。

 

event:

图片上传错误,待恢复后上传。

 

Sql代码  BEGIN      #Routine body goes here...      DECLARE _yesterday DATE DEFAULT NULL;      DECLARE _before_yesterday DATE DEFAULT NULL;      DECLARE _is_success tinyint(1) DEFAULT 0;            select DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d'),INTERVAL 1 day) INTO _yesterday;      select DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d'),INTERVAL 2 day) INTO _before_yesterday;            #统计前天用户数,并将前天用户插入到report_user_remain_day_detail表中      SET _is_success = get_user_remain_day(_before_yesterday);        #查询report_user_login_day_detail,统计昨天的用户,并将前天和昨天都登录的用户状态设置为1      SET _is_success = update_user_status_remain(_yesterday);        #统计存留用户明细表,将统计数据存储到统计表report_user_remain_day      SET _is_success = insert_user_remain_day(_yesterday);            RETURN _is_success;  END  Sql代码  CREATE FUNCTION `get_user_remain_day`(`_day_time` date) RETURNS int(1)  BEGIN      #Routine body goes here...       DECLARE stopFlag INT DEFAULT 0 ;      DECLARE _device VARCHAR(50) DEFAULT NULL;      DECLARE _a_token CHAR(64) DEFAULT '-1';      DECLARE _day_time date;      DECLARE _shop_id INT(11) DEFAULT 0;        #查询当天的登录用户      DECLARE cur1 CURSOR FOR  select shop_id, device, a_token from report_user_login_day_detail WHERE day_time = _day_time;      DECLARE CONTINUE HANDLER FOR NOT FOUND SET stopFlag=1;        OPEN cur1;            FETCH cur1 INTO _shop_id, _device, _a_token;      WHILE  stopFlag = 0 do          INSERT INTO report_user_remain_day_detail(id, shop_id, day_time, device, a_token)               values (UUID(), _shop_id, _day_time, _device, _a_token);            FETCH cur1 INTO _shop_id, _device, _a_token;      END WHILE;      CLOSE cur1;        RETURN 1;  END    Sql代码  CREATE FUNCTION `update_user_status_remain`(`_day_time` date) RETURNS tinyint(1)  BEGIN      #Routine body goes here...        DECLARE stopFlag INT DEFAULT 0 ;      DECLARE _device VARCHAR(50) DEFAULT NULL;      DECLARE _a_token CHAR(64) DEFAULT '-1';              #查询昨天的登录用户      DECLARE cur1 CURSOR FOR  select device, a_token from report_user_login_day_detail           WHERE day_time = _day_time;      DECLARE CONTINUE HANDLER FOR NOT FOUND SET stopFlag=1;        OPEN cur1;            FETCH cur1 INTO _device, _a_token;      WHILE  stopFlag = 0 do           UPDATE report_user_remain_day_detail SET status_remain = 1, day_time = _day_time               WHERE device = _device;            FETCH cur1 INTO _device, _a_token;      END WHILE;      CLOSE cur1;           RETURN 1;  END  Sql代码  CREATE FUNCTION `insert_user_remain_day`(`_day_time` date) RETURNS tinyint(1)  BEGIN      #Routine body goes here...      DECLARE stopFlag INT DEFAULT 0 ;      DECLARE _status_remain TINYINT(1);      DECLARE _remain_count INT DEFAULT 0;      DECLARE _all_count INT DEFAULT 0;      DECLARE _temp_count INT DEFAULT 0;              DECLARE cur2 CURSOR FOR SELECT status_remain, count(device) FROM report_user_remain_day_detail           WHERE status_remain = 1 and day_time = _day_time GROUP BY status_remain;       DECLARE CONTINUE HANDLER FOR NOT FOUND SET stopFlag=1;        OPEN cur2;            FETCH cur2 INTO _status_remain, _remain_count;       WHILE  stopFlag = 0 do                        IF _status_remain = 1 THEN              SET _temp_count = _remain_count;              SET _all_count = _all_count + _remain_count;                                ELSE               SET _all_count = _all_count + _remain_count;          END IF;                            INSERT INTO report_user_remain_day(id, day_time, remain_count, remain_percent_day, type_client)               VALUES(UUID(), _day_time, _temp_count, (_temp_count / _all_count), 0);            FETCH cur2 INTO _status_remain, _remain_count;       END WHILE;            CLOSE cur2;             RETURN 1;  END  
로그인 후 복사

 


bitsCN.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

삼성 갤럭시 S25 울트라 휴대폰 유출 : 6.86인치, 가로 화면 대 본체 비율 94.1% 삼성 갤럭시 S25 울트라 휴대폰 유출 : 6.86인치, 가로 화면 대 본체 비율 94.1% Aug 17, 2024 pm 01:49 PM

8월 17일 뉴스에 따르면, 출처 @ibinguniverse는 오늘 웨이보에 글을 올려, 애플 아이폰 16 프로 맥스의 정확한 크기는 6.88인치, 갤럭시 S25 울트라의 정확한 크기는 6.86인치로 둘 다 6.9인치로 간주할 수 있다고 밝혔습니다. . 소식통에 따르면 Samsung Galaxy S25 Ultra는 S24 Ultra보다 본체가 더 좁고 화면이 더 넓으며, 본체에 대한 가로 화면 비율이 94.1%인 반면, S24 Ultra의 본체에 대한 가로 화면 비율은 91.5%입니다. Fenye는 해당 소식통의 Weibo를 확인하면서 새로 노출된 iPhone 16 Pro Max 사진에 대해 댓글을 달았고, 휴대폰이 실제로는 직선 화면 + 2.5D 유리에 가깝다고 생각했습니다.

Apple에서 대중화한 'Tandem OLED'가 OLED보다 나은 점은 무엇인가요? Apple에서 대중화한 'Tandem OLED'가 OLED보다 나은 점은 무엇인가요? Aug 19, 2024 am 04:42 AM

애플은 최근 몇 년간 혁신이 부족하다는 비판을 받아왔지만, 애플이 늘 가만히 있던 것은 아니다. 적어도 하드웨어 설계 측면에서는 Apple 제품의 높은 단가 덕분에 엔지니어들은 비용 문제를 크게 고려하지 않고도 몇 가지 새로운 기술을 쉽게 시험해 볼 수 있습니다. 예를 들어 아이패드 프로는 애플이 가장 선호하는 '디스플레이 기술' 테스트 분야로, 아이패드 프로는 2021년 미니LED부터 2024년 탠덤 OLED까지 휴대용 스마트 기기용 디스플레이 기술의 선두에 섰다. iPad Pro가 miniLED 스크린을 탑재한 최초의 휴대용 스마트 기기는 아니지만(MSI는 Apple보다 1년 먼저 miniLED 노트북을 출시했습니다), 두 제품의 매개변수를 비교해 보면 동일하지 않다는 것을 금방 깨닫게 될 것입니다.

애플과 화웨이 모두 버튼 없는 휴대폰을 만들고 싶었는데, 샤오미가 먼저 만들었다고요? 애플과 화웨이 모두 버튼 없는 휴대폰을 만들고 싶었는데, 샤오미가 먼저 만들었다고요? Aug 29, 2024 pm 03:33 PM

Smartprix의 보고서에 따르면 Xiaomi는 "Suzaku"라는 코드명 버튼 없는 휴대폰을 개발하고 있습니다. 이 소식에 따르면 코드명 Zhuque라는 이 휴대폰은 통합 컨셉으로 설계되고 언더스크린 카메라를 사용하며 계획이 변경되지 않으면 2025년에 출시될 것으로 보입니다. . 이 뉴스를 보고 2019년으로 돌아간 줄 알았어요. 당시 샤오미가 Mi MIX Alpha 컨셉폰을 출시했는데, 서라운드 스크린 버튼이 없는 디자인이 꽤 놀라웠어요. 버튼이 없는 휴대폰의 매력을 처음 본 것 같아요. "마법의 유리"를 원한다면 먼저 버튼을 죽여야 합니다. "스티브 잡스 전기"에서 잡스는 휴대폰이 "마법의 유리"처럼 되기를 희망한다고 말한 적이 있습니다.

MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법 MySQL 8.4에서 mysql_native_password가 로드되지 않음 오류를 수정하는 방법 Dec 09, 2024 am 11:42 AM

MySQL 8.4(2024년 최신 LTS 릴리스)에 도입된 주요 변경 사항 중 하나는 "MySQL 기본 비밀번호" 플러그인이 더 이상 기본적으로 활성화되지 않는다는 것입니다. 또한 MySQL 9.0에서는 이 플러그인을 완전히 제거합니다. 이 변경 사항은 PHP 및 기타 앱에 영향을 미칩니다.

최초의 1.5K 언더스크린 카메라! Nubia Z70 Ultra 출시: 세계 최초의 Snapdragon 8 Gen4 진정한 전체 화면 휴대폰 최초의 1.5K 언더스크린 카메라! Nubia Z70 Ultra 출시: 세계 최초의 Snapdragon 8 Gen4 진정한 전체 화면 휴대폰 Aug 19, 2024 pm 03:47 PM

8월 19일 뉴스에 따르면 누비아는 Z50 울트라 출시 이후 진정한 풀스크린 디자인을 고수해 왔으며, 고화소 화면에서 능동적인 사진 촬영 분야를 지속적으로 탐구해 왔다. 오늘 디지털 블로거 위즈덤 피카츄는 올 하반기 출시 예정인 누비아 Z70 울트라가 업계 최고 해상도 UDC 솔루션인 1.5K 언더스크린 카메라 기술을 탑재해 데뷔한다는 소식을 전했다. 멀리. ZTE의 언더스크린 프로액티브 솔루션이 6세대로 발전한 것으로 알려졌습니다. 최신 언더스크린 사전 대응 솔루션은 Nubia Z60 Ultra 및 Red Magic 9S Pro 시리즈에서 사용할 수 있습니다. 화면 해상도는 2480x1116으로 1080P에서 1.5K 해상도 사이입니다. 이번에 Nubia는 기존 해상도의 한계를 뛰어넘고 업계의 새로운 기준을 세울 것입니다.

휴대폰을 사용하여 '검은 신화: 오공'를 입력하시겠습니까? 실제 테스트에서 플레이해볼 수는 있지만 추천하지는 않습니다. 휴대폰을 사용하여 '검은 신화: 오공'를 입력하시겠습니까? 실제 테스트에서 플레이해볼 수는 있지만 추천하지는 않습니다. Aug 23, 2024 pm 09:44 PM

'검은 신화:오공'은 출시 이후 인기가 떨어지지 않았으며 주요 플랫폼에서 연일 뜨거운 검색어를 기록하고 있다. 불행히도 모바일 플레이어의 경우 PC 플레이어, 콘솔 플레이어 및 휴대용 플레이어에게만 즐거움이 있습니다. 휴대폰을 만드는 우리는 어떻게 그럴 수 있겠습니까? 우선, 100GB가 넘는 대용량 3A 게임인 만큼, 성능 요구사항이 매우 높고, 렌더링 기술도 다수 탑재되어 있다는 점에서 블랙몽키를 휴대폰에서 구동한다는 생각은 배제한다. PC하드웨어용으로 개발되어 휴대폰하드웨어에서 실행된다면 프레임레이트나 화질은 말할 것도 없고 게임에 진입하지 못할 수도 있습니다. 이 경우에는 인기 있는 클라우드 게임만 볼 수 있습니다. Tencent와 NetEase는 "Black Myth"에 대한 해당 활동을 시작했습니다. WeGame 플랫폼이 판매 플랫폼이기도하다는 장점을 활용하여 Tencent

샤오미 홍미 14C 휴대폰, 8월 31일 출시 예정: 6.88인치 90Hz 화면, 5160mAh 배터리, 50MP 메인 카메라 샤오미 홍미 14C 휴대폰, 8월 31일 출시 예정: 6.88인치 90Hz 화면, 5160mAh 배터리, 50MP 메인 카메라 Aug 24, 2024 am 11:07 AM

8월 24일 뉴스에 따르면, 기술 매체 91Mobile은 어제(8월 23일) 블로그 게시물을 게재하여 Xiaomi가 8월 31일에 Redmi14C 스마트폰을 출시할 것이라는 소식을 전했습니다. 이 스마트폰은 녹색(일반 가죽이어야 함), 세 가지 색상으로 출시될 예정입니다. 검정색과 파란색. 샤오미 레드미14C는 후면에 오레오 원형 카메라 모듈을 탑재하고 카메라 센서 2개와 LED 플래시 1개를 탑재했으며 5000만 화소 메인 카메라를 탑재했으며 오른쪽에는 볼륨 및 전원 버튼이 있다. 아래 첨부된 샤오미 홍미14C 홍보 이미지를 보시면 전면에 물방울 모양의 홈이 있는 것을 보실 수 있습니다. 제품이 중저단에 위치하여 턱 부분의 프레임이 더 넓어진 모습입니다. 사양 측면에서 Xiaomi Redmi14C 휴대폰에는 새로 고침 빈도가 90H인 6.88인치 FullHD+ 해상도 화면이 장착되어 있습니다.

Realme GT7 Pro에는 초음파 지문인식, 초대형 배터리, 100W 고속 충전 등 다양한 제품이 포함되어 있습니다. Realme GT7 Pro에는 초음파 지문인식, 초대형 배터리, 100W 고속 충전 등 다양한 제품이 포함되어 있습니다. Aug 23, 2024 pm 03:31 PM

8월 23일자 뉴스에 따르면 디지털 블로거 디지털 챗 스테이션(Digital Chat Station)에 따르면 Realme GT7 Pro의 제품 기능이 포괄적으로 강화될 예정이며 구성에는 초음파 지문, 잠망경 망원, 초대형 배터리 및 100와트 고속 충전이 포함됩니다. . 1. Realme GT7Pro에는 대용량 6000mAh 배터리가 내장되어 있으며 100W 고속 충전을 지원합니다. 엔지니어링 기계는 무선 충전을 지원하지 않으며 양산 모델은 알 수 없습니다. 단일 지점 초음파 지문 인식 기능을 갖추고 있으며 IP68/69 방진 및 방수를 지원합니다. LYT6003X 잠망경이 장착되어 있으며 망원 매크로를 지원하지 않습니다. BOE X2 기판을 사용하여 1.5K 해상도 동일 심도 4곡선 스크린을 장착했습니다. Snapdragon 8Gen4 프로세서를 사용하며 최대 16GB의 메모리와 1TB의 스토리지를 지원합니다. Realme GT7Pro는 이르면 올해 4분기에 출시될 것으로 예상됩니다.

See all articles