ホームページ データベース 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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Apple と Huawei は両方ともボタンのない携帯電話を作りたがっていましたが、Xiaomi が最初にそれを作りましたか? Apple と Huawei は両方ともボタンのない携帯電話を作りたがっていましたが、Xiaomi が最初にそれを作りましたか? Aug 29, 2024 pm 03:33 PM

Smartprix の報道によると、Xiaomi はコードネーム「Suzaku」というボタンのない携帯電話を開発中です。このニュースによると、コードネームZhuqueというこの携帯電話は、統合コンセプトで設計され、画面下カメラを使用し、Qualcomm Snapdragon 8gen4プロセッサを搭載する予定で、計画が変更されなければ、2025年に登場する可能性が高いとのことです。 。このニュースを見たとき、2019 年に戻ったような気がしました。当時、Xiaomi は 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 リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、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日のニュースによると、NubiaはZ50 Ultraのリリース以来、真のフルスクリーンデザインにこだわり、高ピクセルスクリーン下でのプロアクティブな写真撮影の分野を継続的に模索し続けている。本日、デジタルブロガーの Wisdom Pikachu が、今年後半にリリースされる Nubia Z70 Ultra が、業界最高解像度の UDC ソリューションである 1.5K アンダースクリーン カメラ テクノロジーを搭載してデビューするというニュースを発表しました。遠い。 ZTEのアンダースクリーンプロアクティブソリューションは第6世代に進化したと報告されています。最新の画面下プロアクティブ ソリューションは、Nubia Z60 Ultra および Red Magic 9S Pro シリーズで利用できます。画面解像度は 2480x1116 で、解像度は 1080P から 1.5K の間です。今回、Nubia は既存の解像度の限界を打ち破り、業界に新たなベンチマークを設定します。

携帯電話を使用して「黒神話:悟空」と入力しますか?実際のテストではプレイできますが、お勧めしません。 携帯電話を使用して「黒神話:悟空」と入力しますか?実際のテストではプレイできますが、お勧めしません。 Aug 23, 2024 pm 09:44 PM

「Black Myth: Wukong」は発売以来、その人気は衰えることなく、すべての主要プラットフォームで毎日多くの熱い検索が行われています。残念なことに、モバイル プレーヤーにとって、その興奮は PC プレーヤー、コンソール プレーヤー、携帯プレーヤーだけのものです。携帯電話を作っている私たちが負けるはずがないのです。まず第一に、Black Monkey を携帯電話で実行するという考えは除外します。100 GB を超える大規模な 3A ゲームであるため、パフォーマンス要件は非常に高く、多数のレンダリング テクノロジが必要です。 PC ハードウェア用に開発されたものを翻訳して携帯電話ハードウェアで実行すると、フレーム レートや画像がどれほど優れているかは言うまでもなく、ゲームに参加できない可能性があります。この場合、人気のあるクラウド ゲームに注目することができます。Tencent と NetEase の 2 つの巨人が、「Black Myth」に対応する活動を開始しました。 Tencent は、WeGame プラットフォームが販売プラットフォームでもあるという利点を活かして、

Xiaomi Redmi 14C携帯電話は8月31日にリリースされることが明らかに:6.88インチ90Hz画面、5160mAhバッテリー、50MPメインカメラ Xiaomi Redmi 14C携帯電話は8月31日にリリースされることが明らかに:6.88インチ90Hz画面、5160mAhバッテリー、50MPメインカメラ Aug 24, 2024 am 11:07 AM

8月24日のニュースによると、テクノロジーメディア91Mobileは昨日(8月23日)ブログ投稿を公開し、Xiaomiが8月31日にRedmi14Cスマートフォンを発売するというニュースを速報しました。黒と青。 Xiaomi Redmi14Cは背面にOreo円形カメラモジュールを搭載し、2つのカメラセンサーと1つのLEDフラッシュ、50メガピクセルのメインカメラを備え、右側に音量ボタンと電源ボタンがあります。以下にXiaomi Redmi14Cのプロモーション写真を添付し​​ます。製品が中低域に位置しているため、前面に水滴型の溝が装備されていることがわかります。仕様に関しては、Xiaomi Redmi14C携帯電話には、リフレッシュレート90Hの6.88インチFullHD+解像度画面が装備されています

Realme GT7 Proには、超音波指紋認証、超大型バッテリー、100W急速充電などの製品がすべてリストされています。 Realme GT7 Proには、超音波指紋認証、超大型バッテリー、100W急速充電などの製品がすべてリストされています。 Aug 23, 2024 pm 03:31 PM

8月23日のニュースによると、デジタルブロガーのデジタルチャットステーションによると、Realme GT7 Proの製品機能は包括的に強化され、その構成は超音波指紋、潜望鏡望遠、超大型バッテリー、100ワットの高速充電をカバーする予定です。 。 1. Realme GT7Proは6000mAhの大容量バッテリーを内蔵しており、100Wの急速充電をサポートしています。エンジニアリングマシンはワイヤレス充電をサポートしておらず、量産モデルは不明です。一点超音波指紋認証を搭載し、IP68/69の防塵・防水に対応。 LYT6003Xペリスコープを搭載していますが、望遠マクロには対応しておりません。 1.5K解像度の等深度4曲面スクリーンを搭載し、BOE X2基板を採用。 Snapdragon 8Gen4 プロセッサを採用し、最大 16GB のメモリと 1TB のストレージをサポートします。 Realme GT7Proは、早ければ今年第4四半期に発売される予定です。

Binance Binance公式Webサイト最新バージョンログインポータル Binance Binance公式Webサイト最新バージョンログインポータル Feb 21, 2025 pm 05:42 PM

Binance Webサイトログインポータルの最新バージョンにアクセスするには、これらの簡単な手順に従ってください。公式ウェブサイトに移動し、右上隅の[ログイン]ボタンをクリックします。既存のログインメソッドを選択してください。「登録」してください。登録済みの携帯電話番号または電子メールとパスワードを入力し、認証を完了します(モバイル検証コードやGoogle Authenticatorなど)。検証が成功した後、Binance公式WebサイトLogin Portalの最新バージョンにアクセスできます。

Huawei Smart Selectの新しい携帯電話! WIKO Hi Enjoy 70がまもなくリリースされます:2024年に珍しい水滴スクリーン Huawei Smart Selectの新しい携帯電話! WIKO Hi Enjoy 70がまもなくリリースされます:2024年に珍しい水滴スクリーン Aug 24, 2024 pm 12:35 PM

8月24日のニュースによると、ファーウェイのディーラー「カンシャンおじさん」は、ファーウェイの新しいスマートセレクションシリーズの携帯電話WIKOHiEnjoy70/70mが間もなく発売されるというニュースを伝えました。報道によると、新型端末の外観は基本的にHuawei Enjoy 70と同じで、P60シリーズに似たデザインを採用しているものの、前面には2024年では非常に珍しいウォータードロップスクリーンが搭載されているとのこと。 WIKOHi Enjoy 70 コア構成: MT6833 プロセッサ (MediaTek Dimensity 700) を搭載 ポジショニング: エントリーレベルのモデル 画面: 6.75 インチ画面は LCD スクリーンであると予想される 解像度: 720x1600 目の保護効果は OLED スクリーンより優れている 重量 202 グラム、本体サイズ168.3x77.7×8.98mm、5000mAh大容量内蔵

See all articles